2016-12-04 7 views
0

正規表現の結果に文字を挿入する際に問題があります。私は理解してJavaScriptの正規表現結果の先頭と末尾に文字を挿入します

r = /he/ig; 
str = "Hello world Hello"; 
var match, indexes = []; 
while (match= r.exec(str)){ 
    indexes.push([match.index, match.index+match[0].length]); 
} 

indexes.forEach((element) => { 
    var strStart = str.substring(0,element[0]); 
    var strBetween = "<mark>"+str.substring(element[0],element[1])+"</mark>"; 
    var strEnd = str.substring(element[1],str.length); 
    str = strStart.concat(strBetween,strEnd); 
}); 

console.log(str); //<mark>He</mark>llo worl<mark>d </mark>Hello     

エラーは次のとおりです。

console.log(result); 
<mark>He</mark>llo world, <mark>he</mark>llo" 

が、私はこのコードを使用してみました。このような文字列であることを

var str = "Hello world, hello"; 
var regX = /he/ig; 

結果ている:私はこのようないくつかの操作を行う必要がありますしかし、私はそれを解決する方法を理解していない。

+0

最後に「d」文字が「」で折り返されているのはなぜですか? – RomanPerekhrest

答えて

0

あなたが.replace()方法でこれを行うことができます。

var str = "Hello world hello"; 
var result = str.replace(/he/ig, "<mark>$&</mark>"); 

置換文字列内の$&はマッチしたテキストを置換する必要があることを意味しています。

関連する問題