Javascript 正则表达式测试,但仅当11个字符

Javascript 正则表达式测试,但仅当11个字符,javascript,regex,Javascript,Regex,我有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}-除换行符以外的0到10个字符 |-或 {12,}-

我有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}
      -除换行符以外的0到10个字符
    • |
      -或
    • {12,}
      -除换行符以外的12个或更多字符
    • |
      -或
    • [a-zA-Z]{6}[a-zA-Z0-9]{5}
      -六个字母和五个字母数字字符
  • -组结束
  • $
    -字符串结束

为了匹配换行符,您可以添加
/s
标志(如果您使用的是符合ECMAScript 2018标准的JavaScript环境),或者将每个
替换为
[\w\w]
/
[\s\s]
/
[\d\d]
/
[^]

和pass您想返回True吗?我不明白你的问题,在你的正则表达式中,第一部分有{6}个字符,第二部分有{5}个字符,6+5=11,但你说11正是你不希望的长度…如果你谈论的是另一个不是正则表达式的测试,请共享代码:)@WiktorStribiżew没有删除,只是评估。比如说12"将通过,因为它小于11"1234$abcd!56789*efg'将通过,因为它大于11'1234567890a“不会通过,因为它有11个字符,但如果经过测试,则不会通过前面提到的正则表达式。”aaaasrbb123'将通过测试,因为它是11个字符,并且通过了前面提到的正则表达式。我想我得到了它,所以我删除了注释并发布了答案。传达此信息的最佳方式是向我们展示示例。。。失败的例子和通过的例子。确保每个要通过/失败的bucket至少有一个示例,等等。看起来11个bucket至少有三个。
?:
这是什么?@rajdeepdebnatha。这正是我需要的!谢谢@WiktorStribiżew