gpt4 book ai didi

javascript - 最多 6 个字符的混合数字的正则表达式验证

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:29:51 28 4
gpt4 key购买 nike

我需要一个混合长度的正则表达式验证,总长度为 6 个字符,其中 4-6 个大写/数字字符和 0-2 个空格。

我试过

^[A-Z0-9]{4,6}+[\s]{0,2}$

但它导致最大长度为 8 个字符,但我最多需要 6 个字符。

最佳答案

如果字母数字字符应该只出现在字符串的开头而空格可以出现在末尾(即字母数字和空格的顺序很重要),您可以使用

/^(?=.{6}$)[A-Z0-9]{4,6}\s*$/

参见 regex demo

详情

  • ^ - 字符串的开始
  • (?=.{6}$) - 字符串长度限制为 6 个非换行字符
  • [A-Z0-9]{4,6} - 4、5 或 6 个大写 ASCII 字母或数字
  • \s* - 0+ 个空格(但实际上,只有 0、1 或 2 可以添加,因为总长度已经通过前瞻验证)
  • $ - 字符串结尾。

如果你想匹配字符串中任意位置的字母数字和空格,你需要 lookaround基于正则表达式,例如

^(?=(?:[^A-Z0-9]*[A-Z0-9]){4,6}[^A-Z0-9]*$)(?=(?:\S*\s){0,2}\S*$)[A-Z0-9\s]{6}$

参见 regex demo

详情

  • ^ - 字符串的开始
  • (?=(?:[^A-Z0-9]*[A-Z0-9]){4,6}[^A-Z0-9]*$) -要求字符串内任何位置存在 4 到 6 个字母或数字的正向前瞻
  • (?=(?:\S*\s){0,2}\S*$) - 正向前瞻,要求在字符串中的任何位置存在 0 到 2 个空格
  • [A-Z0-9\s]{6} - 6 个 ASCII 大写字母、数字或空格
  • $ - 字符串结尾。

为了缩短模式,第二个lookahead可以写成(?!(?:\S*\s){3}),如果有3个空白字符,它将匹配失败字符串内的任何位置。参见 the regex demo .

关于javascript - 最多 6 个字符的混合数字的正则表达式验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52540181/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com