。
以下是我要修改的正则表达式,以检查字符的重复,以持续中的2次不超过2次,请参见下面的示例。我有避免重复的正则义务,但我都需要同样的表达式。(/(。( 1 {2}/(
例如:
Nameee : Invalid,
Naaame : Invalid,
Name : Valid,
Naammee: Valid,
Nnname : Invalid.
我有
^(?!.*[AaEeIiOoUu]{5}).*[AaEeIiOoUu].*[a-zA-Zu00BF-u1FFFu2C00-uD7FF]*(?:-[a-zA-Zu00BF-u1FFFu2C00-uD7FF]*)?$
由于字符不能立即出现,因此您可以在^
之后立即向您的模式添加(?!.*(.)1{2})
。您必须使用i
修饰符以确保以情况不敏感的方式处理字母。
更新的正则表达式看起来像
/^(?!.*(.)1{2})(?!.*[AEIOU]{5}).*[AEIOU].*[A-Zu00BF-u1FFFu2C00-uD7FF]*(?:-[A-Zu00BF-u1FFFu2C00-uD7FF]*)?$/i
^^^^^^^^^^^^^^
请参阅Regex Demo
(?!.*(.)1{2})
是一个负面的lookahead,如果立即在当前位置的右侧(在字符串启动之后,在此处(有0个以上的chars,则有0个以上的字符,然后有一个三倍的char: (.)
将字符捕获成小组1和1{2}
的值与第1组(由于1
反向重新汇率(相同(由于{2}
有限量化器(。