gpt4 book ai didi

javascript - 用于在 <input> JQuery 中重复(相似)表达式的正则表达式

转载 作者:行者123 更新时间:2023-11-30 14:21:48 26 4
gpt4 key购买 nike

我有一个输入文本字段,其中包含如下商品编号:

ABC_ABC123; AB__B2A4; ABF_323WET; ...

所以我想强制用户保留艺术编号。格式...

这是我的正则表达式,它适用于一个艺术编号:

var mask1 = /^([A-Z]{2})([A-Z|_]{1})_([A-Z0-9]{0,16});$/;

但我想扩展它以获得更多的字符串/艺术编号

我该如何解决这个问题?

谢谢!

最佳答案

在你的单项模式中,匹配小写字母有问题,你必须将它们添加到字符类中,[A-Z0-9]{0,16} => [A-Za-z0-9]{0,16}.

整体解决方案看起来像

/^[A-Z]{2}[A-Z_]_[A-Za-z0-9]{0,16};(?: [A-Z]{2}[A-Z_]_[A-Za-z0-9]{0,16};)*$/

参见 regex demo

详情

  • ^ - 字符串的开始
  • [A-Z]{2}[A-Z_]_[A-Za-z0-9]{0,16}; - 您的项目模式:
    • [A-Z]{2} - 两个大写 ASCII 字母
    • [A-Z_] - 大写 ASCII 字母或 _
    • _ - _ 字符
    • [A-Za-z0-9]{0,16} - 0 到 16 个字母数字 ASCII 字符
    • ; - 一个分号
  • (?: [A-Z]{2}[A-Z_]_[A-Za-z0-9]{0,16};)* - 出现 0 次或多次
    • - 空格(替换为 \s 以匹配构造函数符号中的任何空格,\\s)
    • [A-Z]{2}[A-Z_]_[A-Za-z0-9]{0,16}; - 项目模式
  • $ - 字符串结尾。

在 JS 中,您可以动态构建模式以使其可读:

var block = "[A-Z]{2}[A-Z_]_[A-Za-z0-9]{0,16};"
var regex = new RegExp(`^${block}(?: ${block})*$`)
console.log( regex.test("ABC_abc123; AB__B2A4; ABF_323WET;") )

关于javascript - 用于在 &lt;input&gt; JQuery 中重复(相似)表达式的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52622849/

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