gpt4 book ai didi

javascript - 构造具有三个子模式且最大长度为 28 个字符的正则表达式

转载 作者:行者123 更新时间:2023-12-03 02:05:26 24 4
gpt4 key购买 nike

我需要创建一个符合此要求的表达式:

  • 字符串必须由3个子字符串组成

  • 第一个子字符串接受0-9a-zA-Z,最小长度为1,没有最大长度

  • 第二个子字符串必须是“- ”

  • 最后一个条件与第一个条件相同

  • 字符串最大总长度必须为 28 个字符

可以用正则表达式来完成这个要求吗?

最佳答案

以下正则表达式应该可以正常工作:

/(?=^.{3,28}$)[^\W_]+\-[^\W_]+/

var array = [
"123456790-123456789012345678",
"123456790-1234567890123456789",
"adsd-dsds"
];
var re = /(?=^.{3,28}$)[^\W_]+\-[^\W_]+/;
array.forEach(e => console.log(re.test(e) ? e.match(re)[0]: "match failed"));

故障无耻地从 regex101.com 复制:

  • 正向先行(?=^.{3,28}$)
    • ^ 断言位置位于行首
    • .{3,28} 匹配任何字符(行终止符除外)
    • {3,28} 量词 - 匹配 3 到 28 次,尽可能多的次数,根据需要回馈(贪婪)
    • $ 在行尾断言位置
  • 匹配下面列表中不存在的单个字符[^\W_]+
    • + 量词 - 一次和无限次之间的匹配,尽可能多的次数,根据需要回馈(贪婪)
    • \W 匹配任何非单词字符(等于 [^a-zA-Z0-9_])
    • _ 与字符 _ 字面匹配(区分大小写)
    • \- 匹配字符 - 字面意思(区分大小写)
  • 匹配下面列表中不存在的单个字符[^\W_]+
    • + 量词 - 一次和无限次之间的匹配,尽可能多的次数,根据需要回馈(贪婪)
    • \W 匹配任何非单词字符(等于 [^a-zA-Z0-9_])
    • _ 与字符 _ 字面匹配(区分大小写)

关于javascript - 构造具有三个子模式且最大长度为 28 个字符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49832164/

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