我期待在javascript中使用正则表达式进行名称检查。[字母数字]的正则表达式建议[字母数字.- _ @] 31个字符
- 的值可以包含字母数字和下列特殊字符 ( ' - ', '_' 和 '@' '')。
- 它应该始终以字母数字字符开头。
- 它不应该是一个空字符串。
- 此参数的最大允许长度为31个字符。
- 该参数不区分大小写。
我想出了这个,但觉得不正确。有关如何让它万无一失的任何建议?
^[A-Za-z0-9]+[[email protected]]{30}
我期待在javascript中使用正则表达式进行名称检查。[字母数字]的正则表达式建议[字母数字.- _ @] 31个字符
我想出了这个,但觉得不正确。有关如何让它万无一失的任何建议?
^[A-Za-z0-9]+[[email protected]]{30}
你是非常接近,这里是正确的正则表达式:
/^[a-z0-9][\[email protected]]{0,30}$/i
我施加的folloing变化:
$
锚固到端\w
替换a-zA-Z0-9_
并移动-
到端字符分类{30}
至{0,30}
请参阅Regex101-Demo进行一些单元测试。
^[A-Za-z0-9][[email protected]]{0,30}
-
在与托架的,所以它不会被用作范围{,30}
+
第一字符之后(没有它你会得到> 31个字符)您可以随时在www.regexr.com
\-
。{30}
到{0,30}
,因为它并不需要准确地31个字符长A-Z
零件$
结果是这样的:
/[a-z0-9][[email protected]\-._]{0,30}/i
您应该进一步将'-'移动到'[A-Za-z0-9 _ @ .-]'的末尾,并且不要使用固定重复的'30',而是使用0-30'{0,30}' –
你可以将'[A-Za-z0-9 _ @ .-]'改成'[\ w @ .-]' –
@SebastianProske - Ohr right。如果我放一个{30}它只会查找长度= 30的权利?我需要它匹配30以下的任何东西。所以..这样的事情?^[A-Za-z0-9] [A-Za-z0-9 _ @ .-] {0,30}我们正在移动 - 到最后,因为它不应该像A-Z表示那样拾取一系列字符? – blueren