我正在尝试创建一个仅允许大写或小写字母以及空格字符“-”、“、”、“.”、“(”和“)”的正则表达式。这是我到目前为止所拥有的,但由于某种原因它仍然让我输入数字
^[a-zA-Z -,.()]*$
任何帮助都会很棒!谢谢。
-
在角色类别中很特殊。它用于定义一个范围,就像您所做的那样a-z
.
匹配文字-
您需要转义它或放置它,使其不会充当范围运算符:
^[a-zA-Z \-,.()]*$
^^ escaping \
or
^[-a-zA-Z ,.()]*$
^ placing it at the beginning.
or
^[a-zA-Z -,.()-]*$
^ placing it at the end.
有趣的是
^[a-z-A-Z -,.()]*$
^ placing in the middle of two ranges.
在最后的情况下-
是介于a-z
and A-Z
因为周围的两个角色-
(我们要按字面意思对待的)即z
and A
已经涉及范围,-
再次按字面处理。
在所有提到的方法中,推荐使用转义方法因为它使您的代码更易于阅读和理解。任何人看到\
预计会有逃跑的意图。放置-
如果您稍后在字符类中之前(之后)添加一个字符而不转义,那么在开始(结束)处会产生问题-
从而形成一个范围。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)