如何制作这个简单的正则表达式?

oYe*_*Yes 1 javascript regex

我需要创建一个字符串的开头和结尾,字母数字范围在5到20个字符之间,字符之间可能有空格或没有空格./^[a-z\s?A-Z0-9]{5,20}$/但这不起作用.

编辑
测试测试-should通过
TESTTEST -should通
测试测试测试-should未通过

Pau*_*aul 6

如果不编写一个可笑的长表达式,你不能用传统的正则表达式做到这一点,所以你需要使用前瞻:

/^(?=(\w| ){15,20}$)\w+ ?\w+$/
Run Code Online (Sandbox Code Playgroud)

这样说,确保匹配中有15到20个字符,然后匹配 /\w+ \w+/

注意我使用\ w进行简化.它与上面的角色类相同,除了它也接受下划线.如果你不想匹配它们,你必须这样做:

/^(?=[a-zA-Z0-9 ]{15,20}$)[a-zA-Z0-9]+ ?[a-zA-Z0-9]+$/
Run Code Online (Sandbox Code Playgroud)