我有这个规则
var reg = new RegExp('[a-z]{3}');
这意味着允许在a-z和至少3次出现之间使用字符。 所以,我想知道是否有办法将此规则与非连续字符匹配。
换句话说,
"abc" => valid
"aaa" => not valid
谢谢!
答案 0 :(得分:1)
这是一个正常的3个(或N个)字符的正则表达式,如果数字不固定则会变得更复杂:
^([a-z])(?!\1{2})[a-z]{2}$
1 2 3 4 5 6 7 8
说明:
^
匹配字符串的开头([a-z])
匹配其中一个接受的字符并保存(第1组)(?!...)
否定前瞻,不接受这些括号中的内容\1
引用第一组(此处为第一个字符){2}
重复两次[a-z]
接受的字符{2}
重复两次$
匹配字符串的结尾 Link here(我添加了gm
修饰符,以便可以测试多个表达式。)
答案 1 :(得分:0)
尝试使用排除前瞻(?![a-z]{3})
,不按顺序匹配3个相同的字符。