前3个字符必须为:
示例:
ABC-56789 (True) AAA-56789 (False)
我试过这个:
/^[^ABC$|^ACD$|^BCD$][*-][5|8][0-9]{4}$/
k4emjkb11#
使用此正则表达式:
const regex = /^(?:ABC|ACD|BCD)-[58][0-9]{4}$/; [ 'ABC-56789', 'AAA-56789' ].forEach(str => { console.log(str, '==>', regex.test(str)); })
输出:
ABC-56789 ==> true AAA-56789 ==> false
正则表达式的解释:
^
(?:ABC|ACD|BCD)
-
[58]
5
8
[0-9]{4}
$
9gm1akwq2#
使用圆括号而不是方括号对交替模式进行分组:
^(ABC|ACD|BCD)-[58][0-9]{4}$
vfh0ocws3#
用这个表达怎么样?
^(ABC|ACD|BCD)-[5|8]\d{4}$
[]表示字符集。因此,[ABC]表示任何A或B或C,而不是ABC。^表示在[]中求反。因此,您使用的regex可能无法正常工作。如果您想对令牌分组,则应使用()。您还可以使用\d(数字)代替[0-9]。
i7uq4tfw4#
您必须将正则表达式更改为以下内容:
/^(ABC|ACD|BCD)-(5|8)[0-9]{4}$/
[]匹配单个字符,但您希望在开头匹配三个字符,因此必须使用()创建捕获组。
[]
()
4条答案
按热度按时间k4emjkb11#
使用此正则表达式:
输出:
正则表达式的解释:
^
--字符串开头的锚点(?:ABC|ACD|BCD)
-具有OR组合的非夺获组-
--字母破折号[58]
--一个5
或8
[0-9]{4}
--四位数$
--管柱末端的锚***了解有关regex的详细信息:***https://twiki.org/cgi-bin/view/Codev/TWikiPresentation2018x10x14Regex
9gm1akwq2#
使用圆括号而不是方括号对交替模式进行分组:
vfh0ocws3#
用这个表达怎么样?
[]表示字符集。因此,[ABC]表示任何A或B或C,而不是ABC。^表示在[]中求反。因此,您使用的regex可能无法正常工作。如果您想对令牌分组,则应使用()。您还可以使用\d(数字)代替[0-9]。
i7uq4tfw4#
您必须将正则表达式更改为以下内容:
[]
匹配单个字符,但您希望在开头匹配三个字符,因此必须使用()
创建捕获组。