谁能告诉我可以在现有的正则表达式中添加什么,以使 4 个或更多连续的相同字母无效?这是我到目前为止所拥有的:
(^[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
有 2 个前瞻:
(?=.{2})
- 正向前瞻,确保输入中至少有 2 个字符(?!.*([a-z])\1{3})
负向前视以确保我们不允许字母表出现 4 次重复。
关于javascript - 4个或更多相同的连续字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44693510/