为什么新的RegExp()字符串不需要转义正斜杠?

时间:2018-05-13 22:46:35

标签: javascript regex

阅读本文档https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

"当使用构造函数时,正常的字符串转义规则(在包含在字符串中时带有\的前面的特殊字符)是必需的。"

那么为什么RegExp()的这两种用法没有区别?

"a/b/c".match(new RegExp("\/", "g")) // (2) [ "/", "/" ]
"a/b/c".match(new RegExp("/", "g"))  // (2) [ "/", "/" ]

文件不正确或遗失了什么?

可能重复的问题表明正斜杠必须作为文字进行转义。使用字符串,上面的示例显示了给定具有构造函数的字符串的用例的情况并非如此。这个问题具体是关于使用带有构造函数的字符串。

因此,根据下面的答案,差异似乎与文字有关,而且"并且/需要被转义,但是当使用字符串时只需要"需要逃脱。

1 个答案:

答案 0 :(得分:2)

正斜杠只是特殊字符,因为它们在Javascript中指定文字正则表达式的语法开头和结尾。但是当你使用构造函数时,那是不需要的,因为提供给new RegExp的第一个参数是构造正则表达式的(整个)字符串。