gpt4 book ai didi

javascript - 有没有办法对字符串中最后出现的字符使用替换方法?

转载 作者:行者123 更新时间:2023-12-01 15:34:30 24 4
gpt4 key购买 nike

var str = "lala";
var newStr = str.replace('l', 'm');

newStr 的值变为'mala',因为 replace 方法在字符串中找到第一次出现的字符并替换该字符然后停止。

但我想要输出“喇嘛”。
我怎样才能实现它?

最佳答案

您可以为此使用正则表达式:

var str = "lala";
var newStr = str.replace(/l([^l]*)$/, 'm$1'); // lama
console.log(newStr);


此模式匹配 l后跟任意数量的不是 l 的字符直到字符串结束。这只会匹配一次,因为字符串只结束一次(即在 "lalblc" 中匹配 "lc" )。然后它替换 "lc""m"后跟 l 之后的一组字母(即 "c" )。最后,您留下了原始字符串,但最后一个 l替换为 m .
[^l]表示“任何不是 l 的字母”
*表示“任意次数(0 次或多次)”

括号创建一个可以使用 $1 引用的捕获组在更换。

如果您将经常这样做,将其移至函数会很有用。你可以做一个函数, replaceLast可以通过以下方式调用字符串:

String.prototype.replaceLast = function (search, replace) {
return this.replace(new RegExp(search+"([^"+search+"]*)$"), replace+"$1");
}

str = "lala";
newStr = str.replaceLast("l", "m");
console.log(newStr);

关于javascript - 有没有办法对字符串中最后出现的字符使用替换方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60693734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com