1

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

无论如何,我需要限制一个字符串只允许以下字符:az 和 AZ 和 0-9 和空格和 .,;:!=+-_

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

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

我不明白为什么这个表达式不起作用。当我使用它时,以下测试字符串给了我以下结果:

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

当我真正需要将验证限制为有效字符的特定列表时,似乎正在考虑这些特殊字符的顺序,而不管字符串中的顺序如何。

任何人都可以解释为什么这可能允许特殊字符,例如“<>”,但只能以特定顺序出现?

4

1 回答 1

3

使用锚和盾牌符号-

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

于 2012-09-10T19:35:05.630 回答