我有
/^[a-zA-Z][a-zA-Z '-]*[a-zA-Z]$/g
此正则表达式不允许字符串结束或以空格'
,-
字符开头。
但是,如果我传递一个像a
这样的字符串,它也会被检测为无效。
请建议如何传递一个字符串,而不是空格,'
,-
。
非常感谢。
a
- 正确的
a
- 不正确的
'a
- 不正确的
答案 0 :(得分:0)
你的正则表达式需要一个以字母开头的输入,然后有0 +字符,如字母,空格,单引号和连字符,然后是必填字母。用可选的非捕获组包裹模式的最后两部分:
/^[a-z](?:[a-z '-]*[a-z])?$/i
^^^^^^^^^^^^^^^^^^^
i
不区分大小写的修饰符会使模式更短。
<强>详情
^
- 字符串开头[a-z]
- ASCII字母(?:[a-z '-]*[a-z])?
- 1次或0次出现:
[a-z '-]*
- 0 + ASCII字母,空格,'
或-
[a-z]
- ASCII字母$
- 字符串结束。