MVC4中的正则表达式

时间:2015-07-22 07:16:10

标签: regex asp.net-mvc-4

我想要一个只允许字母,数字和特殊字符的正则表达式,但不允许使用数字,特殊字符和空格。我在下面使用这个表达式,但它不起作用。我该如何修理Iit?

"^(?=.*\\d)(?=.*[a-zA-Z]).{4,10}$"

例如::

  

Abc!@#111 - 接受
  qwerty - 接受
  111 - 不要接受   @#$ - 别接受

1 个答案:

答案 0 :(得分:2)

在你的正则表达式中,字母和数字都是必需的。因此,它不匹配qwerty

看来你只想确保至少有一个字母。

如果您计划仅使用服务器端验证,则可以使用允许Unicode字母类\P{L}表示非字母的.NET正则表:

^(?!\P{L}*$)\S{4,10}$

可以声明为@"^(?!\P{L}*$).{4,10}$"

请参阅demo

如果您需要在客户端或客户端和服务器端验证字符串,则需要JS兼容版本(但它不支持Unicode):

^(?![^A-Za-z]*$)\S{4,10}$

要检查是否存在numbres或特殊字符,我们可以使用需要至少使用一个字母的预见(?!\P{L}*$)