我有这样的文字:
<div id="myDiv">
myText: something1
othertext
myText: something2
othertext
myText: something3
....
<div>
我只在多行上匹配字符串后面的文字:myText:
使用这个js:
var myDivText = document.getElementById('myDiv').innerHTML;
var r = /myText:\s*([A-Za-z0-9-]+)/gim;
var m;
while ((m = r.exec(myDivText)) != null){
console.log(m[1]);
}
输出正确:something1
,something2
,something3
等。
现在我需要将这些匹配替换为"ReplacedWord"
我该怎么做?
答案 0 :(得分:2)
您可以直接在原始字符串上使用.replace()
:
var myDivText = document.getElementById('myDiv').innerHTML;
var temp = myDivText.replace(/(myText:\s*)([A-Za-z0-9-]+)/gim, "$1ReplacedWord")
console.log(temp);
工作演示:http://jsfiddle.net/jfriend00/Lbhxudv2/
说明:我在正则表达式的开头添加了一个新组,以捕获您不想替换的匹配部分。然后,替换字符串是“$ 1ReplacedWord”,它将第一个匹配部分添加回替换。
答案 1 :(得分:0)
我会推荐replace()功能。
如果你已经尝试了这个并且它不起作用,你的结果是什么?
例如,在while语句中,您可以调用:
myDivText.replace(m[1], "ReplacedWord");
或
myDivText.replace(m[1], m[1]+"_Replaced");