阅读本文档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) [ "/", "/" ]
Run Code Online (Sandbox Code Playgroud)
该文件是否不正确或者我遗漏了什么?
可能的重复问题表明正斜杠必须作为文字转义。使用字符串,上面的示例表明,考虑到带有构造函数的字符串的用例,情况并非如此。这个问题具体是关于在构造函数中使用字符串的。
因此,根据下面的答案,差异似乎在于文字,“和 / 都需要转义,但是当使用字符串时,仅需要转义”。
正斜杠只是特殊字符,因为它们指定Javascript 中文字正则表达式的语法开头和结尾。但是,当您使用构造函数时,则不需要这样做,因为提供的第一个参数是用于构造正则表达式的(整个)字符串。new RegExp