2017-09-28 7 views
0

正規表現に一致するすべての単語を置換しようとしています。私はこのようになり機能なりました:正規表現と一致するテキスト内の単語を置換する

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); 
     } 
    } 

をしかし、ループ内で常にからテキストを取っているので、一致する文字列の最後の値だけが、newStrに置き換えられますので、これは、右ではありませんstr変数、どうすれば更新してnewStrをループして、regexに一致するすべての値を置き換えることができますか?

+1

で細かい

ルック作品私は、これはここで回答されていると思います:https://stackoverflow.com/questions/1144783/how-to-replace-all-occurrences- of-a-string-in-javascript –

答えて

1

これはString.prototype.replace definition

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