gpt4 book ai didi

JavaScript 正则表达式 : Positive lookbehind alternative (for Safari and other browsers that do not support lookbehinds)

转载 作者:行者123 更新时间:2023-11-30 08:28:33 26 4
gpt4 key购买 nike

我正在为此寻找替代方案:

(?<=\.\d\d)\d

(匹配句点后的第三个数字。)

我知道我可以使用其他方法解决它,但我必须使用正则表达式,更重要的是我必须在字符串上使用替换,而不添加回调。

最佳答案

将 lookbehind 转换为消费模式并使用 capturing 组:

并如下所示使用它:

var s = "some string.005";
var rx = /\.\d\d(\d)/;
var m = s.match(/\.\d\d(\d)/);
if (m) {
console.log(m[1]);
}

或者,获取所有匹配项:

const s = "some string.005 some string.006";
const rx = /\.\d\d(\d)/g;
let result = [], m;
while (m = rx.exec(s)) {
result.push(m[1]);
}
console.log( result );

matchAll 示例:

const result = Array.from(s.matchAll(rx), x=>x[1]);

编辑:

要使用您当前的规范从 str.123 中删除 3,请使用相同的捕获 方法:捕获您需要的内容并恢复使用替换模式中的 $n 反向引用在结果中捕获的文本,并且只匹配您需要删除的内容。

var s = "str.123";
var rx = /(\.\d\d)\d/;
var res = s.replace(rx, "$1");
console.log(res);

关于JavaScript 正则表达式 : Positive lookbehind alternative (for Safari and other browsers that do not support lookbehinds),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41360348/

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