"\\31foo" "1foo1-6ren">
gpt4 book ai didi

javascript - 用 Javascript 正则表达式替换前导数字

转载 作者:行者123 更新时间:2023-12-03 11:21:51 24 4
gpt4 key购买 nike

作为 this question 的跟进(不是我),我需要用 \\3n 替换 id 的前导数字(其中 n 是我们要替换的数字)。

一些例子:

"1foo"    -> "\\31foo"
"1foo1" -> "\\31foo1"
"12foo" -> "\\31\\32foo"
"12fo3o4" -> "\\31\\32fo3o4"
"foo123" -> "foo123"

下面是一个替换数字的每个实例的解决方案,但我不知道足够的正则表达式来让它在遇到非数字时停止。

function magic (str) {
return str.replace(/([0-9])/g, "\\3$1");
}

...或者正则表达式是一种糟糕的方式吗?我想这很容易做到,只需手动遍历字符串的每个字符即可。

最佳答案

这是一种使用反向字符串 + 前瞻方法实现所需功能的方法:

function revStr(str) {
return str.split('').reverse().join('');
}

var s = "12fo3o4";
document.write(revStr(revStr(s).replace(/\d(?=\d*$)/g, function (m) {
return m + "3\\\\";
}))
);

正则表达式匹配一个数字,该数字后面可以跟 0 个或多个数字,直到反转字符串的结尾(实际上是开始)(使用 \d(?=\d*$)).回调允许操纵匹配(我们只需添加反转的 \\3。然后,我们只需反转结果。

关于javascript - 用 Javascript 正则表达式替换前导数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32224281/

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