我的数据:(222)222-2222
为什么不通过?
checkRegexp(TelephoneNumber, /^(d{3}) d{3}-d{4}$/, "Please enter your 10 digit phone number.");
function checkRegexp(o, regexp, n) {
if (!(regexp.test(o.val()))) {
o.addClass("ui-state-error");
updateTips(n);
return false;
} else {
return true;
}
}
答案 0 :(得分:2)
(
和)
是正则表达式中用于捕获组的特殊字符,您需要将它们转义。您还希望\d
代表数字字符。如果没有\
,则匹配字母d
。
/^\(\d{3}\) \d{3}-\d{4}$/
当您遇到正则表达式问题时,可以使用http://regex101.com/之类的网站,其中包含正则表达式的说明。您可能已经看到括号不被视为文字字符。
例如,你是原始正则表达式:
^ assert position at start of the string
1st Capturing group (d{3})
d{3} matches the character d literally (case sensitive)
Quantifier: Exactly 3 times
matches the character literally
d{3} matches the character d literally (case sensitive)
Quantifier: Exactly 3 times
- matches the character - literally
d{4} matches the character d literally (case sensitive)
Quantifier: Exactly 4 times
$ assert position at end of the string
你会很容易看到这个问题。