尝试使用正则表达式来验证字符串是否包含9或12位数(但不是10或11位),当前使用两个正则表达式的列表并检查输入字符串两次。这可以简化吗?
var regexes = [/^[0-9]{9}$/, /^[0-9]{12}$/]
for (var i = 0; i < regexes.length; ++i) {
if (regexes[i].test(input))
return true;
}
return false;
答案 0 :(得分:5)
您可以使用这样的正则表达式:
/^[0-9]{9}([0-9]{3})?$/
所以9个数字,可能后跟3个数字。
然而,检查两种可能性并没有错。
答案 1 :(得分:2)
/^\d{9}(\d{3})?$/
这应该有效:D
答案 2 :(得分:2)
var regex = /^[0-9]{9}$|^[0-9]{12}$/;
if (input.match(regex)!= null)
return true;