gpt4 book ai didi

javascript - 重复模式的正则表达式

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

我需要一个满足以下条件的正则表达式。1. 字符串总长度 300 个字符。2. 应以 &,-,/,# 开头,仅后跟 3 或 4 个字母数字字符3. 以上模式可以是连续的字符串,最多300个字符

字符串示例 - &ACK2-ASD3#RERT...

我尝试重复该组但没有成功。

(^[&//-#][A-Za-z0-9]{3,4})+ 

那是行不通的..只匹配第一组

最佳答案

您可以先使用 /^(?:[&\/#-][A-Za-z0-9]{3,4})+$/ 验证字符串正则表达式并检查字符串长度(使用 s.length <= 300 ),然后返回所有匹配的验证正则表达式的一部分:

var s = "&ACK2-ASD3#RERT";
var val_rx = /^(?:[&\/#-][A-Za-z0-9]{3,4})+$/;
if (val_rx.test(s) && s.length <= 300) {
console.log(s.match(/[&\/#-][A-Za-z0-9]{3,4}/g));
}

正则表达式详细信息

  • ^ - 字符串开始
  • (?:[&\/#-][A-Za-z0-9]{3,4})+ - 出现 1 次或多次:
    • [&\/#-] - & , / , #-
    • [A-Za-z0-9]{3,4} - 三个或四个字母数字字符
  • $ - 字符串结束。

参见 regex demo .

请注意缺少 gRegExp#test 一起使用的验证正则表达式的修饰符并且它必须出现在提取正则表达式中(因为我们只需要检查一次字符串,但提取多次出现)。

关于javascript - 重复模式的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57270402/

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