允许某些特殊字符 - 正则表达式

时间:2014-10-06 09:54:44

标签: asp.net regex

我想只允许空格,连字符,下划线和&逗号以及字母和&数字。但这并没有按照预期发挥作用。

<asp:RegularExpressionValidator ControlToValidate="txtQuestion"
Display="dynamic" runat="server" ErrorMessage="*"
ValidationExpression="^[a-zA-Z0-9-_,\s]$"></asp:RegularExpressionValidator>

Character   ShownResult
-            valid
_            valid
,            valid
-_           invalid //this should be valid for me

3 个答案:

答案 0 :(得分:2)

-符号放在字符类的最后或第一个或考虑转义它,否则它将充当范围运算符。

^[a-zA-Z0-9_,\s-]+$

在字符类后添加+以允许一个或多个字符,否则它只允许列表中的单个字符。

答案 1 :(得分:1)

^[a-zA-Z0-9\-_,\s]*$

退出-,以便它不会定义范围。也可以使用*+来包含一个或多个字符。

参见演示。

http://regex101.com/r/hQ1rP0/21

答案 2 :(得分:0)

如果您想要除了Numbers和Char @%之外的文本字段?*使用以下RE

ValidationExpression = “[0-9 @%?]

这适用于任何字符组合