简单的电话号码正则表达式无法正常工作

时间:2014-01-16 20:18:45

标签: jquery regex

我的数据:(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;
              }
          }

1 个答案:

答案 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

你会很容易看到这个问题。