Javascript 4个或更多相同的连续字母
有谁能告诉我,我可以在现有的正则表达式中添加什么,从而使4个或更多的相同字母连续无效?这就是我到目前为止所做的:Javascript 4个或更多相同的连续字母,javascript,regex,Javascript,Regex,有谁能告诉我,我可以在现有的正则表达式中添加什么,从而使4个或更多的相同字母连续无效?这就是我到目前为止所做的: (^[A-Za-z]{1})([A-Za-z\-\'\s]{0,})([A-Za-z]{1}$) 除1项要求外,它满足我目前的所有要求,即: 任何字母字符 单个空格,但不作为第一个或最后一个字符 连字符,但不作为第一个或最后一个字符 单引号,但不作为第一个或最后一个字符 不超过3个相同的连续字符,不考虑大小写 至少2个字符长(如果存在) 一些例子: James -
(^[A-Za-z]{1})([A-Za-z\-\'\s]{0,})([A-Za-z]{1}$)
除1项要求外,它满足我目前的所有要求,即:
- 任何字母字符
- 单个空格,但不作为第一个或最后一个字符
- 连字符,但不作为第一个或最后一个字符
- 单引号,但不作为第一个或最后一个字符
- 不超过3个相同的连续字符,不考虑大小写
- 至少2个字符长(如果存在)
James - valid
Sarah Jayne - valid
Michellle - valid
O'Brian - valid
Holly-Rose - valid
Eeeeric - invalid
Jo--anne - invalid
根据您的描述、编辑和注释,您可能可以在Javascript中使用此正则表达式:
/^(?=.{2})(?!.*([a-z])\1{3})[a-z]+(?:[' -][a-z]+)*$/gmi
有两个lookahead:
-正向前瞻以确保输入中至少有2个字符(?=.{2})
负前瞻,以确保不允许字母表重复4次(?!*([a-z])\1{3}
([a-zA-Z])
替换()