我想将所有abc
替换为jkm
和#START#
中的#END#
。
输入字符串是:
- abc xyz abc #START# abc xyz abc #END#
输出字符串必须为:
- abc xyz abc jkm xyz jkm
我是Javascript的新手,这让我很难自己编写和显示代码。需要帮助
答案 0 :(得分:4)
> 'abc xyz abc #START# abc xyz abc #END#'.replace(/#START#.*?#END#/g, function(x) { return x.replace(/abc/g, 'jkm'); } )
"abc xyz abc #START# jkm xyz jkm #END#"
'abc xyz abc #START# abc xyz abc #END#'.replace(/#START#.*?#END#/g, function(x) {
return x.replace(/#(START|END)#/g).replace(/abc/g, 'jkm');
} )
"abc xyz abc undefined jkm xyz jkm undefined"
答案 1 :(得分:1)
尝试这样的事情:
pieces = inputString.split(/#(?:START|END)#/);
outputString = pieces[0]+pieces[1].replace(/abc/g,'jkm')+pieces[2];
答案 2 :(得分:0)
你不需要正则表达式。 试试这个解决方案:
var a = 'abc xyz abc #START# abc xyz abc #END# adf adf';
var start = a.indexOf('#START#');
var end = a.indexOf('#END');
if (end > start && end >= 0 && start >= 0) {
var b = a.substring(start, end); // contents between #start# and #end#
var c = a.substring(0, start); // w/e before #start#
var d = a.substring(end + 5) // w/e after #end#
b = b.replace(/abc/g, 'jqm').replace('#START#', '').replace('#END#', '');
a = c + b + d; // result
}
console.log(a);