gpt4 book ai didi

JavaScript 字符串替换为来自以 param 作为正则表达式捕获组的 lodash 函数返回的替换

转载 作者:行者123 更新时间:2023-12-02 23:17:17 25 4
gpt4 key购买 nike

其实问题很简单,为什么这行不通?我怎样才能问心无愧地实现我想要的目标?

var toClean = "Test & &";
var result = toClean.replace(/([&"'<>](?!quot;|lt;|gt;|apos;|amp;))/g,_.escape("$1"));
console.log(result); // prints => "Test &amp; &"
// what i expect is => "Test &amp; &amp;"

请记住,这是有效的:

var toClean = "Test &amp; &";
var result = toClean.replace(/([&"'<>](?!quot;|lt;|gt;|apos;|amp;))/g,
_.toUpper("a"));
console.log(result); // prints => "Test &amp; A"

最佳答案

$1 反向引用只能直接在替换函数中起作用,而不能在传递给其他函数的参数中起作用。幸运的是,String.replace 可以使用函数作为替换,而不仅仅是字符串;在这种情况下,匹配的子字符串将作为参数传递给回调,然后函数返回的任何内容都将用作替换。

对于全局替换,每场比赛都会调用一次回调。第一个参数是完全匹配,第二个是第一个捕获组,第三个是第二个捕获组,依此类推。

所以:

toClean.replace(/([&"'<>](?!quot;|lt;|gt;|apos;|amp;))/g, (match, sub1) => _.toUpper(sub1));

关于JavaScript 字符串替换为来自以 param 作为正则表达式捕获组的 lodash 函数返回的替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57117769/

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