繁体   English   中英

javascript替换字符串的最后一次出现

[英]javascript replace last occurrence of string

我已经阅读了StackOverflow中的许多问答,但我仍然很难获得RegEX。 我有字符串12_13_12

如何用aa代替最后一次出现的12。

最终结果应为12_13_aa

我真的很想对您的操作方式做出很好的解释。

您可以使用以下替换:

var str = '12-44-12-1564';
str = str.replace(/12(?![\s\S]*12)/, 'aa');
console.log(str);

说明:

(?!            # open a negative lookahead (means not followed by)
   [\s\S]*     # all characters including newlines (space+not space)
               # zero or more times
   12
)              # close the lookahead

换句话说,该模式表示:

newString = oldString.substring(0,oldString.lastIndexOf("_")) + 'aa';

使用此String.replace并确保最后输入$

repl = "12_13_12".replace(/12(?!.*?12)/, 'aa');

编辑:在正则表达式中使用变量:

var re = new RegExp(ToBeReplaced);
repl = str.replace(re, 'aa');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM