Javascript RegExp非连续字符

时间:2016-07-08 01:43:59

标签: javascript regex

我有这个规则

var reg = new RegExp('[a-z]{3}');

这意味着允许在a-z和至少3次出现之间使用字符。 所以,我想知道是否有办法将此规则与非连续字符匹配。

换句话说,

"abc" => valid
"aaa" => not valid

谢谢!

2 个答案:

答案 0 :(得分:1)

这是一个正常的3个(或N个)字符的正则表达式,如果数字不固定则会变得更复杂:

^([a-z])(?!\1{2})[a-z]{2}$
1   2    3 4  5    6   7 8

说明:

  1. ^匹配字符串的开头
  2. ([a-z])匹配其中一个接受的字符并保存(第1组)
  3. (?!...)否定前瞻,不接受这些括号中的内容
  4. \1引用第一组(此处为第一个字符)
  5. {2}重复两次
  6. [a-z]接受的字符
  7. {2}重复两次
  8. $匹配字符串的结尾
  9. Link here(我添加了gm修饰符,以便可以测试多个表达式。)

答案 1 :(得分:0)

尝试使用排除前瞻(?![a-z]{3})按顺序匹配3个相同的字符。