我在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,}))/
这样它就可以按预期工作,而无需删除第一对开括号和右括号。
答案 0 :(得分:1)
逻辑解决方案是从您拥有的代码中删除外部括号,例如var passRegex = /${ConfigurationHolder.config.password.regex}/;
。
如果不是一个选项,只需将\1
替换为\2
作为要检查的数字的组移位并获取新ID = 2,password.regex = /^(?!.*([0-9])\2{2,})/
。