我知道使用JS RegExp我可以匹配:
/^[a-zA-Z]{7}$/
/^[a-zA-Z]{3,7}$/
/^[a-zA-Z]{3,}$/
如果我想匹配不同的特定长度怎么办?类似于:/^[a-zA-Z]{2|4|6}$/
意味着字符串必须具有2,4或6个字符的长度。我可以使用JavaScript的RegExp吗?
我尝试使用谷歌搜索但无法找到搜索此特定情况的方法,我总是找到如何匹配长度范围。
情景:我目前有这个if
声明,我想缩短声明:
if(typeof ean !== 'string' || !/^\d+$/.test(ean) || [8, 12, 13, 14].indexOf(ean.length) === -1) {
return false;
}
答案 0 :(得分:2)
您需要的只是正则表达式OR |
模式,但需要重复一遍:
/^(?:[a-zA-Z]{2}|[a-zA-Z]{4}|[a-zA-Z]{6})$/
请注意,(?:...)
部分只是一个非捕获组,用于制作所有替代方案"作为一个组成。"没有它,^
和$
必须包含在每个替代方案中。
在您的具体情况下,也许可以尝试:
/^(?:\d{8}|\d{12,14})$/