我需要一个正则表达式,它接受包含至少3个英文字母的任何字符串。字母表可以是字符串中的任何位置。
测试用例:
应该返回true
:
abc This is a test This number 123 just $@!!. 123ABC289389798
应该返回false
:
ab ab213823897编辑:对不起,我应该澄清它需要3个英文字母。字母表可以是字符串中的任何位置。
答案 0 :(得分:7)
这样的事情怎么样?
[A-Za-z].*[A-Za-z].*[A-Za-z]
[A-Za-z]匹配来自A-Z或a-z的任何字符。这个正则表达式保证你有3个这样的字符。 。*匹配任意数字的任何字符,因此您的三个字母字符可以是连续的,也可以在之间/之后/之间有任何内容。
等正则表达式工具进行测试你也可以像这样整合它:
([A-Za-z].*){3}
编辑:用[A-Za-z]替换\ w并添加说明。
EDIT2:感谢@nhahtdh,从开头和结尾删除。*因为我们只需要一个匹配,而不是整个字符串的覆盖。
答案 1 :(得分:3)
如果您希望所有字母背靠背返回true,只需使用:
[a-zA-Z]{3,}
这不包括空格。
如果您不需要背靠背放置,请尝试以下操作:
[a-zA-Z].*?[a-zA-Z].*?[a-zA-Z]
答案 2 :(得分:1)
答案 3 :(得分:1)
这将有效:
[a-zA-Z]{3,}
匹配,a-z
& A-Z
字符
答案 4 :(得分:0)
这是一个解决方案:
string.replace(/[\W^\d]/g, '').length >= 3;