【发布时间】:2016-05-12 06:01:04
【问题描述】:
我在 grails 配置中有一个限制重复数字的正则表达式:
password.regex = /^(?!.*([0-9])\1{2,})/
当我在https://regex101.com/ 中测试它时,它工作正常。但它不适用于我们拥有的 JS 代码,因为它将正则表达式修改为:
var passRegex = /(${ConfigurationHolder.config.password.regex})/;
所以结果是这样的:
/(^(?!.*([0-9])\1{2,}))/
不幸的是,我无法更改 js 代码,所以我只能依靠修改配置。有人可以帮我修改这个正则表达式
/(^(?!.*([0-9])\1{2,}))/
这样它就可以按预期工作而无需删除第一对开闭括号。
【问题讨论】:
-
那些外括号没有任何害处。
-
嗨,但是当我在 regex101.com 中测试这个正则表达式 /(^(?!.*([0-9])\1{2,}))/ 时,它不能按预期工作对比 /^(?!.*([0-9])\1{2,})/
-
啊,我明白了,反向引用。因此,只需将
\1替换为\2。试试password.regex = /^(?!.*([0-9])\2{2,})/。所以,你不能把var passRegex = /(${ConfigurationHolder.config.password.regex})/;改成var passRegex = /${ConfigurationHolder.config.password.regex}/;,对吗? -
是的。我无法控制代码
标签: javascript regex grails