我需要验证字符串,以便只允许使用正则表达式的特定字符集。不幸的是,我只使用正则表达式来验证这些字符串。
无论如何我需要限制一个字符串只允许以下字符: a-z和A-Z和0-9以及空格和。,;:!= + -_
为此,我创建了以下表达式:
[a-zA-Z0-9.,;:!=+-_\s]*
我无法弄清楚为什么这个表达不起作用。我使用它时,以下测试字符串给出了以下结果:
<test> Valid
$<test> Invalid
test Valid
<test>asdf</test> Invalid
当我真正需要将验证限制在特定的有效字符列表时,无论字符串中的顺序如何,都会考虑这些特殊字符的顺序。
任何人都可以解释为什么这可能允许特殊字符,例如'&lt;&gt;'但仅限于某些订单?
答案 0 :(得分:3)
使用锚点和盾牌符号-
^[a-zA-Z0-9.,;:!=+\-_\s]*$