2017-09-28 1 views
0

Ich versuche, alle Wörter in meinem Text zu ersetzen, die einem Give Regex entsprechen. Ich habe eine Funktion gemacht, die wie folgt aussieht:Ersetzen von Wörtern im Text, die Regex entsprechen

const str = this.node.body; 
    const regex = /(href=\')([^\']*)(\')/g; 
    let newStr; 

    if (str.match(regex)) { 
     for(let i = 0; i < str.match(regex).length; i++) { 
     let url = str.match(regex)[i] + ' target="_blank"'; 
     newStr = str.replace(str.match(regex)[i], url); 
     } 
    } 

Aber dies ist nicht richtig, da nur der letzte Wert des passenden String wird da in den newStr ersetzt werden, in der Schleife immer nimmt den Text aus die Variable str, wie kann ich es so machen, dass ich aktualisiert newStr durchlaufen, und ersetzen Sie alle Werte, die regex entsprechen?

+1

ich denke, das hier beantwortet wurde: https://stackoverflow.com/questions/1144783/how-to-replace-all-occurrences- von Zeichenketten in Javascript –

Antwort

1

Dies funktioniert

Blick auf String.prototype.replace definition

const str = this.node.body; 
const regex = /(href=\')([^\']*)(\')/g; 
let newStr = str.replace(/(href=\')([^\']*)(\')/g, '$& target="_blank"')