gpt4 book ai didi

javascript - Javascript的跨浏览器正则表达式库,使用函数替换

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:37:50 27 4
gpt4 key购买 nike

有没有可以替换函数作为参数的库

当我调用这个函数时

"foo[10]bar[20]baz".replacef(/\[([0-9]*)\]/g, function(a) {
return '[' + (ParseInt(a)*10) + ']';
});

它应该返回

"foo[20]bar[30]baz";

当我用这个打电话时

"foo[10;5]bar[15;5]baz".replacef(/\[([0-9]*);([0-9]*)\]/g, function(a, b) {
return '_' + (ParseInt(a)+ParseInt(b)) + '_';
});

它应该返回

"foo_15_bar_20_baz"

在 JavaScript 中是否存在具有类似功能的跨浏览器库?

最佳答案

“replace()”函数就是这样工作的。如果第二个参数是一个函数,它传递的参数列表与从 RegExp“exec()”函数返回的数组几乎相同。该函数返回它希望将匹配区域替换为的内容。

被调用函数的第一个参数是整个匹配字符串。第二个和后续参数是从正则表达式中捕获的组(就像你的第二个例子)。但是,您的第二个示例需要一个带有多个参数的函数来保存整个匹配的字符串。

例子:

var s = "hello world".replace(/(\w+)\s*(\w+)/, function(wholeMatch, firstWord, secondWord) {
return "first: " + firstWord + " second: " + secondWord;
});
alert(s); // "first: hello second: world"

关于javascript - Javascript的跨浏览器正则表达式库,使用函数替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5119429/

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