我知道使用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;
}
您需要的只是Regex OR|
模式,但需要重复一些操作:
/^(?:[a-zA-Z]{2}|[a-zA-Z]{4}|[a-zA-Z]{6})$/
请注意,该(?:...)
部分只是一个非捕获组,用于使所有替代方案“充当一体”。如果没有它,则^
和$
必须包含在每个替代方案中。
在您的特定情况下,也许尝试:
/^(?:\d{8}|\d{12,14})$/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句