我希望用户使用以下代码输入连字符
<var>
<var-name>mask</var-name>
<var-value>^[a-zA-Z0-9]*$</var-value>
</var>
我正在使用struts验证。所以请帮我解决这个问题。
修改
用户可以在字符串中的任何位置输入连字符,因此对-
是否应位于开头,中间或结尾没有限制。
答案 0 :(得分:3)
你应该按如下方式逃避它:
<var>
<var-name>mask</var-name>
<var-value>^[a-zA-Z0-9\-]*$</var-value>
</var>
这是因为-
是正则表达式中的一个特殊构造,因此如果你想按字面意思对待它,就逃避它。
答案 1 :(得分:3)
-
是角色类中的特殊字符,您可以通过将其放在开头或结尾来“逃避”它:
[-a-zA-Z0-9]
此角色类将匹配一个角色:
-
当您以这种方式使用它时:^[-a-zA-Z0-9]*$
,您确保您的字符串仅由这些字符组成(对连字符的位置或其他可能的字符没有限制)