正则表达式验证器用于捕获非字母数字字符

时间:2010-11-04 16:30:23

标签: .net regex

这是一个非常密集的问题,但我很累。

我需要一个可以在验证器控件中执行的正则表达式,它将捕获任何非字母数字字符。换句话说,如果字符串仅包含a-z,A-Z或0-9,则regexp需要匹配。

我知道如果字符串中存在非法字符,那么编写一个匹配的正则表达式会很容易 - 问题是我需要相反,因为它在验证器中。那是什么让我头疼。

解决方案赞赏。

4 个答案:

答案 0 :(得分:5)

您的可接受字符集是[a-zA-Z0-9]。您想验证与那些不匹配的任何内容,因此请使用^来否定此字符类:

[^a-zA-Z0-9]+

此外,请确保使用RequiredFieldValidator和RegularExpressionValidator,因为后者不会捕获空白条目。 Per MSDN

  

如果输入控件为空,则为no   验证函数被调用   验证成功。用一个   RequiredFieldValidator控件来   防止用户跳过   输入控制。

答案 1 :(得分:1)

使用:

^[a-zA-Z0-9]*$

答案 2 :(得分:0)

如果空字符串无效:

^[[:alnum:]]+$

答案 3 :(得分:0)

尝试

^[a-zA-Z0-9]*$