/(^[a-zA-Z]+-?[a-zA-Z0-9]+){5,15}$/g
正则表达式标准
匹配长度必须介于 6 到 16 个字符之间(含
只能
以字母开头必须包含字母、数字和一个可选的连字符
不得以连字符结尾
上述正则表达式不满足所有 4 个条件。 尝试将^
移到组之前并省略+
量词,但不起作用
您正在对已经具有量化子模式的组设置限制量词,因此长度限制将不起作用。
要设置长度限制,请在^
后添加(?=.{6,16}$)
展望,然后随意设置您的消费模式。
您可以使用
/^(?=.{6,16}$)[a-zA-Z][a-zA-Z0-9]*(?:-[a-zA-Z0-9]+)?$/
请参阅正则表达式演示。请注意g
根据正则表达式验证整个输入字符串时,不应使用修饰符。
详
-
^
- 字符串的开头 -
(?=.{6,16}$)
- 允许/需要字符串输入中的 6 到 16 个字符 -
[a-zA-Z]
- 一个字母作为第一个字符 -
[a-zA-Z0-9]*
- 0+ 字母数字字符 -
(?:-[a-zA-Z0-9]+)?
- 可选的-
序列,然后是 1+ 字母数字字符 -
$
- 字符串的结尾。
你需要的一切
^(?i)(?=.{6,16}$)(?!.*-.*-)[a-z][a-zd-]*d[a-zd-]*(?<!-)$
读
^
(?i)
(?= .{6,16} $ ) # 6 - 16 chars
(?! .* - .* - ) # Not 2 dashes
[a-z] # Start letter
[a-zd-]* # Optional letters, digits, dashes
d # Must be digit
[a-zd-]* # Optional letters, digits, dashes
(?<! - ) # Not end in dash
$
好吧,至少我的正则表达式强制存在一个数字。