gpt4 book ai didi

Javascript:将具有匹配项的函数传递给替换(regex,func(arg))不起作用

转载 作者:可可西里 更新时间:2023-11-01 01:20:26 24 4
gpt4 key购买 nike

根据该站点,以下替换方法应该有效,但我持怀疑态度。 http://www.bennadel.com/blog/55-Using-Methods-in-Javascript-Replace-Method.htm

我的代码如下:

text = text.replace( 
new Regex(...),
match($1) //$.. any match argument passed to the userfunction 'match',
// which itself invokes a userfunction
);

我使用的是 Chrome 14,没有传递给函数 match 的任何参数?

更新:

使用时有效

text.replace( /.../g, myfunc($1) );

JavaScript 解释器需要一个闭包,- 明显的用户函数似乎会导致范围问题,即不会调用更多的用户函数。最初我想避免闭包以防止必要的内存消耗,但已经有了保障措施。

要将参数传递给您自己的函数,请这样做(其中参数 [0] 将包含整个匹配项:

result= text.replace(reg , function (){
return wrapper(arguments[0]);
});

此外,我在字符串转义和 RegEx 表达式中遇到了问题,如下所示:

/\s......\s/g

不等于

new Regex ("\s.​​.....\s", "g")
新的正则表达式('\s......\s', "g")

所以要小心!

最佳答案

$1 必须在字符串内:

"string".replace(/st(ring)/, "gold $1") 
// output -> "gold ring"

有一个函数:

"string".replace(/st(ring)/, function (match, capture) { 
return "gold " + capture + "|" + match;
});
// output -> "gold ring|string"

关于Javascript:将具有匹配项的函数传递给替换(regex,func(arg))不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7192436/

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