正则表达式测试但仅当11个字符时
我有 javascript 正则表达式,/^[a-zA-Z]{6}[a-zA-Z0-9]{5}$/但如果字符串小于或大于 11 个字符,我也希望测试通过。因此,任何 0-10 个字符的字符串都可以通过,任何 12 个或更多字符的字符串都可以通过,但如果正好是 11 个字符,它将通过前面提到的测试进行评估。
回答
您可以使用
/^(?:.{0,10}|.{12,}|[a-zA-Z]{6}[a-zA-Z0-9]{5})$/
请参阅正则表达式演示。
细节
^- 字符串的开始(?:.{0,10}- 除换行符以外的零到十个字符|- 或者.{12,}- 除换行符以外的十二个或更多字符|- 或者[a-zA-Z]{6}[a-zA-Z0-9]{5}- 六个字母,然后是五个字母数字字符
)- 小组结束$- 字符串的结尾。
为了匹配换行字符,您可以添加的/s标志(如果你使用的是ECMAScript的2018兼容的JavaScript环境),或更换每一个.与[wW]/ [sS]/ [dD]/ [^]。