回答
两个评价是完全相同的正则表达式,但首先是一个文字,这意味着你不能使用它里面的任何变量,你不能动态生成一个正则表达式。
第二个显式使用构造函数,可用于创建动态正则表达式。
var x = '3', r = (new RegExp(x + '\d')); r.test('3d')
以上是使用构造函数动态构造正则表达式的示例,您无法以字面形式进行操作。
在99%的情况下,您将只依赖JS的所有正则表达式的第一个版本(文字)。在你需要说的高级场景中,用户输入动态地构造一个正则表达式,然后你需要第二种形式。
编辑#1:第一个匹配一个数字,第二个匹配字母d
。为了让它等于第一个,我们假设你打算这样做,你必须加倍逃避第二个。请记住,如果第二个示例是新的RegExp('\ d'),我上面输入的建议是准确的。
/\d/.test('3') // true
(new RegExp('\d')).test('3') // false
(new RegExp('\\d')).test('3') // true
尔,正则表达式'3 \ D'不匹配' “3D”'... – Amber 2010-12-20 20:51:20
感谢您的交代,我问的原因是我有这个表达式/^+ | [\\ /#;] | + $/gi(1或更多空格或包含\ /#;或以一个或多个空格结尾)。在每个奇数时间使用非构造函数时,结果都是错误的。例如。结果是交替的。当使用构造函数时,每次都按预期工作。奇怪! – bob 2010-12-20 20:55:28
还有另一个区别:文字只在* parse时间创建* one *对象*而构造函数总是创建一个新对象。这将在ES5中进行更改,并且文字也将始终返回一个新对象。 – 2010-12-20 21:29:50
- 1. 正则表达式表达的差异
- 2. 正则表达式差异
- 3. javascript正则表达式和swift正则表达式之间的差异
- 4. js正则表达式的差异
- 5. PHP的正则表达式差异
- 6. Go的差异正则表达式
- 7. JavaScript和Java之间的正则表达式模式的差异?
- 8. 的Javascript正则表达式跨浏览器的差异
- 9. 差异的JavaScript之间的两个正则表达式中
- 10. 正则表达式差异+和*
- 11. 正则表达式验证差异
- 12. 差异正则表达式之间。*和+
- 13. [af]?lex正则表达式差异
- 14. java.net和javascript之间的正则表达式差异?
- 15. 使用.NET正则表达式IIS UrlRewrite正则表达式的差异
- 16. 标准正则表达式与python正则表达式的差异
- 17. PHP的正则表达式的JavaScript正则表达式
- 18. Javascript正则表达式测试怪异
- 19. JavaScript的正则表达式
- 20. 的Javascript正则表达式
- 21. 的Javascript正则表达式
- 22. 正则表达式的JavaScript
- 23. 正则表达式的Javascript
- 24. JavaScript的 - 正则表达式
- 25. JavaScript的正则表达式
- 26. 正则表达式的JavaScript
- 27. JavaScript的正则表达式?
- 28. 的Javascript正则表达式
- 29. Javascript的正则表达式
- 30. Javascript的正则表达式
关于11个字符 – epascarello 2010-12-20 22:08:17