允许连字符和撇号,但没有其他特殊字符

时间:2015-03-12 19:57:16

标签: asp.net regex validation

我在asp.net Web表单上有以下验证表达式,它允许使用字母数字字符,空格,至少一个字母字符,最少3个字符,最多20个字符: ValidationExpression =“(?!^ [0-9] $)(?!^ [a-zA-Z] $)^([a-zA-Z0-9 _] {3,20 })$“

现在我被要求允许连字符和撇号,但没有其他特殊字符。

如何在我当前的验证中实现这一点?

2 个答案:

答案 0 :(得分:1)

(?!^[0-9'-]$)(?!^[a-zA-Z'-]$)^([a-zA-Z0-9 _'-]{3,20})$

嗯,这里的主要技巧是-符号应放在字符组的末尾,以便将其解析为文字连字符。

答案 1 :(得分:1)

试试这个:

(?=.*?[A-Za-z]+)^[a-zA-Z0-9_\-' ]{3,20}$