Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript字符串中Sanatize类似regex的输入(第二个参数)。replace()_Javascript_Regex - Fatal编程技术网

在javascript字符串中Sanatize类似regex的输入(第二个参数)。replace()

在javascript字符串中Sanatize类似regex的输入(第二个参数)。replace(),javascript,regex,Javascript,Regex,我希望在JavaScript中使用String.replace()函数将第一个字符串的特定部分替换为一些不确定的用户输入(第二个字符串) 例1: > var userinput = "^fancy $& regexlike stuff $/i" > "some @@include test".replace(/@@include/, userinput) "some ^fancy @@include regexlike stuff $/i test" 应该是 > va

我希望在JavaScript中使用String.replace()函数将第一个字符串的特定部分替换为一些不确定的用户输入(第二个字符串)

例1:

> var userinput = "^fancy $& regexlike stuff $/i"
> "some @@include test".replace(/@@include/, userinput)
"some ^fancy @@include regexlike stuff $/i test"
应该是

> var userinput = "^fancy $& regexlike stuff $/i"
> "some @@include test".replace(/@@include/, userinput)
 "some ^fancy $& regexlike stuff $/i test"
> var userinput = "^fancy &$ regexlike stuff $/i"
> "some @@include test".replace(/@@include/, userinput)
 "some ^fancy &$ regexlike stuff $/i test"
例2:

> var userinput = "^fancy $& regexlike stuff $/i"
> "some @@include test".replace(/@@include/, userinput)
 "some ^fancy & test"
应该是

> var userinput = "^fancy $& regexlike stuff $/i"
> "some @@include test".replace(/@@include/, userinput)
 "some ^fancy $& regexlike stuff $/i test"
> var userinput = "^fancy &$ regexlike stuff $/i"
> "some @@include test".replace(/@@include/, userinput)
 "some ^fancy &$ regexlike stuff $/i test"
所以这里是实际问题:

如何告诉String.replace()忽略其第二个参数
userinput
中给出的所有正则表达式语法?有赛纳提兹旗吗


非常感谢您提前这么做

只需使用函数的函数语法即可。从函数返回的字符串被视为字符串。字符串中的特殊字符不被视为元字符

var userinput=“^fancy$®exlike stuff$/i”;
var output=“some@@include test”替换(/@@include/,()=>userinput);

控制台日志(输出)简单地用反斜线将它作为角色来考虑……但是我需要用户这样做,或者首先通过自定义sanatize()函数提供输入。。已经想到了这一点,但与replace()上的“IsAnatized”标志相比,它似乎不舒服。请看