Javascript-替换除最后一个delimeter之外的所有分隔符
我有以下代码:Javascript-替换除最后一个delimeter之外的所有分隔符,javascript,Javascript,我有以下代码: var txt = 'DELIMETER is replaced'; txt += 'DELIMETER is replaced'; txt += 'DELIMETER is replaced'; txt += 'DELIMETER is replaced'; txt += 'DELIMETER is replaced'; <-- leave this and not replace the last DELIMETER txt = txt.replace(/DELIME
var txt = 'DELIMETER is replaced';
txt += 'DELIMETER is replaced';
txt += 'DELIMETER is replaced';
txt += 'DELIMETER is replaced';
txt += 'DELIMETER is replaced'; <-- leave this and not replace the last DELIMETER
txt = txt.replace(/DELIMETER/g, "HI");
我知道所有包含“DELIMETER”的单词都将替换为“HI”,但我只想替换“DELIMETER”的前四个单词,但保留最后一个“DELIMETER”,而不替换该单词
如何实现这一点我必须使用regex吗?您可以混合使用regex和javascript。其中一种方法是使用字符串的lastIndexOf检查它是否是最后一次出现,然后使用函数迭代replace上的匹配项。如果匹配结束,则返回匹配的字符串DELIMETER,否则,替换为替换HI var txt=‘DELIMETER被替换’; txt+=“DELIMETER被替换”; txt+=“DELIMETER被替换”; txt+=“DELIMETER被替换”; txt+=“DELIMETER被替换”; 常数目标=测力计; 常数替换=高 const regex=新的RegExptarget'g'; txt=txt.replaceregex,匹配,索引=>index==txt.lastIndexOftTarget?匹配:替换;
logtxt您可以混合使用正则表达式和javascript。其中一种方法是使用字符串的lastIndexOf检查它是否是最后一次出现,然后使用函数迭代replace上的匹配项。如果匹配结束,则返回匹配的字符串DELIMETER,否则,替换为替换HI var txt=‘DELIMETER被替换’; txt+=“DELIMETER被替换”; txt+=“DELIMETER被替换”; txt+=“DELIMETER被替换”; txt+=“DELIMETER被替换”; 常数目标=测力计; 常数替换=高 const regex=新的RegExptarget'g'; txt=txt.replaceregex,匹配,索引=>index==txt.lastIndexOftTarget?匹配:替换;
console.logtxt首先将文本分为两部分,最后一个分隔符之前的部分和后面的所有部分。然后在第一部分中进行替换,并将它们连接在一起 var txt=‘DELIMETER被替换’; txt+=“DELIMETER被替换”; txt+=“DELIMETER被替换”; txt+=“DELIMETER被替换”; txt+=“DELIMETER被替换”; var match=txt.match/*DELIMETER.*/; 如果匹配{ var[整个,第1部分,第2部分]=匹配; 第1部分=第1部分。更换/DELIMETER/g,‘正常’; txt=第1部分+第2部分; }
console.logtxt 首先将文本分为两部分,最后一个分隔符之前的部分,以及最后一个分隔符之后的所有内容。然后在第一部分中进行替换,并将它们连接在一起 var txt=‘DELIMETER被替换’; txt+=“DELIMETER被替换”; txt+=“DELIMETER被替换”; txt+=“DELIMETER被替换”; txt+=“DELIMETER被替换”; var match=txt.match/*DELIMETER.*/; 如果匹配{ var[整个,第1部分,第2部分]=匹配; 第1部分=第1部分。更换/DELIMETER/g,‘正常’; txt=第1部分+第2部分; }
console.logtxt 只需提前去掉最后一个分隔符
var matches = txt.match(/^(.*)(DELIMETER.*)$/)
txt = matches[1].replace(/DELIMETER/g, "HI") + matches[2]
只需提前去掉最后一个分隔符
var matches = txt.match(/^(.*)(DELIMETER.*)$/)
txt = matches[1].replace(/DELIMETER/g, "HI") + matches[2]
我对每个答案投了赞成票,赞成你的建议,但这个答案正是我所需要的。我对每个答案投了赞成票,赞成你的建议,但这个答案正是我所需要的。