2016-12-04 93 views
0

我在正則表達式結果中插入字符時遇到問題。我需要做一些這樣的:在javascript中插入正則表達式結果的開始和結束字符

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

結果已經是這樣的字符串:

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

我嘗試使用此代碼:

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     

我明白的地方是錯誤,但我不知道如何解決這個問題。

+0

爲什麼'd'字符在末尾用''包裹? – RomanPerekhrest

回答

0

您可以用.replace()方法做到這一點:

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

替換字符串的$&意味着匹配的文本應該被替換。

相關問題