Javascript RegExp 与构造函数和文字不同的结果
Javascript RegExp different results from constructor and literal
我正在研究创建不同的正则表达式,寻找强强度和中等强度的用户密码,我注意到相同的表达式给出了不同的结果(使用前瞻、反向引用和负前瞻(,具体取决于我使用的是RegExp
构造函数还是文字语法。
我已经在IE和Firefox上进行了测试,并在这里创建了一个小例子:http://jsfiddle.net/4z4gxxkL/
我使用 RegExp
构造函数的原因是我将表达式作为字符串存储在 JSON 中 - 但在密码的情况下,我可以使用文字语法。
我所有其他表达式都非常简单,并产生了预期的结果。有人可以解释一下这里发生了什么吗?这是 ECMAScript 标准的问题吗?
我总是倾向于使用 http://regexr.com/来测试我的正则表达式
我通过使用给出false
的RegExp("^(?=.*'d)(?=.*[a-zA-Z])(?!.*(.)'1).{5,}$", "g")
对"abc123"进行测试来发现这种差异,但是使用/^(?=.*'d)(?=.*[a-zA-Z])(?!.*(.)'1).{5,}$/g
的测试给出了true
从构造函数创建正则表达式实例时RegExp
您需要使用另一个'
转义'
,因为它是一个转义序列。
第一个工作正常,因为String
中没有'
,而在另一些中,它就在那里,没有逃脱。
转义版本
相关文章:
- 奇怪的Javascript结果
- 添加文字和评论功能更新Div
- Javascript(jQuery)给了我奇怪的结果
- JSONP请求返回结果,但也触发error_callback
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Javascript,输出结果后页面不断刷新
- 这是使用html快照和谷歌获取的预期结果吗?SEO/SPA
- 将地理编码结果转换为php变量以发布到mysql数据库
- AngularJS/HTML/Bootstrap元素用于动态搜索结果
- JQuery:向多个匹配结果添加换行符的最简单方法
- 如何计算对象文字中的键
- 当查询不在displayField中时,引导Ajax Typeahead不显示结果
- webpack代码拆分了handlerbs文件——结果是文件很大
- JavaScript循环无法正确计算/显示结果
- 相同的RegExp返回不同的结果-第一次是正确的结果,第二次是null
- Javascript:添加键值对文字,给出未定义的结果
- Javascript RegExp 与构造函数和文字不同的结果
- 在 JavaScript 中使用浮点文字时出现意外结果
- 使用jQuery.prop&对象文字-两种不同的结果
- 当结果应该很简单时,在对象文字中获取Undefine