正则表达式不工作检查长度

时间:2014-11-13 10:46:34

标签: jquery regex

很长一段时间以来,我一直在我的一个表单中使用正则表达式(java,jQuery项目)。因为我与特殊字符无关,所以我有一个简单的正则表达式如下:

 pattern = /^[a-zA-Z0-9]{1,11}$/i;

但现在我确实关心特殊的并将其修改为:

pattern = /^[a-zA-Z0-9-@_]{1,11}$/i;

但是,现在有更多即将发生的问题,处理所有特殊字符似乎更好。所以我试着在网上寻找处理所有已知角色的东西,但没有运气。你们中的任何人都遇到过那样的东西。我猜不是吗?

其次,我决定允许11个字符范围内的所有内容。我试过以下:

 pattern = /^[]{1,11}$;
  pattern = /^{1,11}$;

我不能让它发挥作用。虽然我不想检查字符串的长度。这可以通过正则表达式完成。即检查输入字符串的长度,无论你输入什么。

请提供任何帮助

2 个答案:

答案 0 :(得分:1)

连字符需要转义,因为它在字符类中的位置。

pattern = /^[a-z0-9\-@_]{1,11}$/i;

注意:在字符类中,连字符具有特殊含义。您可以将其作为班级的第一个或最后一个角色。在某些正则表达式实现中,您也可以直接放在一个范围之后。如果将连字符放在其他任何位置,则需要在其前面加上反斜杠,以便将其添加到角色类中。

您可以像\w匹配[a-zA-Z0-9_] ...

那样编写正则表达式
pattern = /^[\w@-]{1,11}$/;

答案 1 :(得分:0)

试试这个:

pattern = /^[a-zA-Z0-9\@\_\-]{1,11}$/i;

这将接受此正则表达式中一个字符的1到11倍。