正则表达式限制重复数字

时间:2016-05-12 06:01:04

标签: javascript regex grails

我在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,}))/ 

这样它就可以按预期工作,而无需删除第一对开括号和右括号。

1 个答案:

答案 0 :(得分:1)

逻辑解决方案是从您拥有的代码中删除外部括号,例如var passRegex = /${ConfigurationHolder.config.password.regex}/;

如果不是一个选项,只需将\1替换为\2作为要检查的数字的组移位并获取新ID = 2,password.regex = /^(?!.*([0-9])\2{2,})/