验证电话号码的格式(123)456-7891

时间:2019-06-15 07:05:19

标签: javascript regex ecmascript-6

我想验证电话号码,并且正在使用以下正则表达式,尽管它不能正常工作。

function validPhoneNumber(phoneNumber) {
  const pattern = /^(\()?\d{3}(\))?(-|\s)?\d{3}(-|\s)\d{4}$/
  return pattern.test(phoneNumber);
}

console.log(validPhoneNumber("(123) 456-7890")); //should return true
console.log(validPhoneNumber("(1111)555 2345")); // should return false
console.log(validPhoneNumber("(098) 123 4567")); // should return false

2 个答案:

答案 0 :(得分:2)

只需删除? (表示出现零次或一次)\s (仅允许-

function validPhoneNumber(phoneNumber) {
  const pattern = /^(\()?\d{3}(\))?(-|\s)\d{3}(-)\d{4}$/
  //                                    ^^    ^^^
  return pattern.test(phoneNumber);
}


console.log(validPhoneNumber("(123) 456-7890"))
console.log(validPhoneNumber("(123)-456-7890"))
console.log(validPhoneNumber("(123)456-7890"))
console.log(validPhoneNumber("(1111)555 2345"))
console.log(validPhoneNumber("(098) 123 4567"))

答案 1 :(得分:0)

检查此

function validPhoneNumber(phoneNumber){
    const pattern =  /^(\()?\d{3}(\))\s{0,1}(-|\s)?\d{3}-\d{4}$/
    return pattern.test(phoneNumber);
}

validPhoneNumber("(123) 456-7890")  =>  should return true
validPhoneNumber("(1111)555 2345")  => should return false
validPhoneNumber("(098) 123 4567")  => should return false