限制在正则表达式中的一组特定字符不起作用

时间:2012-09-10 19:31:16

标签: regex string validation

我需要验证字符串,以便只允许使用正则表达式的特定字符集。不幸的是,我只使用正则表达式来验证这些字符串。

无论如何我需要限制一个字符串只允许以下字符: a-z和A-Z和0-9以及空格和。,;:!= + -_

为此,我创建了以下表达式:

[a-zA-Z0-9.,;:!=+-_\s]*

我无法弄清楚为什么这个表达不起作用。我使用它时,以下测试字符串给出了以下结果:

<test> Valid 
$<test> Invalid 
test Valid 
<test>asdf</test> Invalid

当我真正需要将验证限制在特定的有效字符列表时,无论字符串中的顺序如何,都会考虑这些特殊字符的顺序。

任何人都可以解释为什么这可能允许特殊字符,例如'&lt;&gt;'但仅限于某些订单?

1 个答案:

答案 0 :(得分:3)

使用锚点和盾牌符号-

^[a-zA-Z0-9.,;:!=+\-_\s]*$