【发布时间】:2012-09-10 19:31:16
【问题描述】:
我需要使用正则表达式验证一个字符串以只允许一组特定的字符。不幸的是,我只使用正则表达式来验证这些字符串。
无论如何我需要限制一个字符串只允许以下字符: a-z 和 A-Z 和 0-9 和空格和 .,;:!=+-_
为此,我创建了以下表达式:
[a-zA-Z0-9.,;:!=+-_\s]*
我不明白为什么这个表达式不起作用。当我使用它时,以下测试字符串给了我以下结果:
<test> Valid
$<test> Invalid
test Valid
<test>asdf</test> Invalid
当我真正需要将验证限制在有效字符的特定列表中时,似乎正在考虑这些特殊字符的顺序,而不管字符串中的顺序如何。
谁能解释一下为什么这可能允许特殊字符,例如“”,但只能按特定顺序?
【问题讨论】:
-
如果您提到的测试没有得到预期的结果,那该怎么办?
标签: regex string validation