很长一段时间以来,我一直在我的一个表单中使用正则表达式(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}$;
我不能让它发挥作用。虽然我不想检查字符串的长度。这可以通过正则表达式完成。即检查输入字符串的长度,无论你输入什么。
请提供任何帮助
答案 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倍。