Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 这个转义函数做什么?_Javascript_Regex - Fatal编程技术网

Javascript 这个转义函数做什么?

Javascript 这个转义函数做什么?,javascript,regex,Javascript,Regex,我在一篇文章中遇到过这个正则表达式,但它并没有真正解释正则表达式助手(他们称之为“escapeRegex”)提供了什么功能 string.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&") 有人能解释一下它做了什么(或试图做什么)?注意,、、#和\s(空白)在不支持自由间距(注释)模式的JS正则表达式中并不是特别的,所以不知道为什么要转义这些字符。另外,-在字符类之外也不是特别的,它也不应该被转义。@WiktorStribiżew是的,这也让我很困惑

我在一篇文章中遇到过这个正则表达式,但它并没有真正解释正则表达式助手(他们称之为“escapeRegex”)提供了什么功能

string.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")

有人能解释一下它做了什么(或试图做什么)?

注意,
#
\s
(空白)在不支持自由间距(注释)模式的JS正则表达式中并不是特别的,所以不知道为什么要转义这些字符。另外,
-
在字符类之外也不是特别的,它也不应该被转义。@WiktorStribiżew是的,这也让我很困惑。老实说,我唯一的解释是转义输入应该是regex,但它
escapeRegex
的意思是“这是用于替换内容的regex”或“使用regex转义内容”。无论它转义的目的是什么,都需要转义的
#
和空格,以及一些恰好与正则表达式中的特殊字符重叠的字符。我访问了链接,它甚至不太清楚(至少没有阅读更多)。它将其描述为“函数使用正则表达式(RegEx)并转义许多字符。”@WiktorStribiżew实际上,我找到了实际用法。它是
newregexp(escapeRegex(req.query.search),'gi')所以,它接受输入并将其转换为正则表达式。我不知道为什么,考虑到他们剥夺了任何与正则表达式相关的东西。这似乎是一种奇怪的不区分大小写的纯文本搜索方式。@VLAZ这意味着代码中有一个bug。是的,我认为那个教程似乎有点不确定,因为它试图做什么。我不考虑那部分。