使用javascript验证电话号码

iJa*_*ade 27 javascript regex validation

我想,以验证电话号码,如123-345-3456(078)789-8908使用JavaScript.这是我的代码

function ValidateUSPhoneNumber(phoneNumber) {
  var regExp = /^(\([0-9]{3}\) |[0-9]{3}-)[0-9]{3}-[0-9]{4}/;
  var phone = phoneNumber.match(regExp);
  if (phone) {
    alert('yes');
    return true;
  }
  alert('no');
  return false;
}
Run Code Online (Sandbox Code Playgroud)

我正在测试使用的函数ValidateUSPhoneNumber('123-345-34567'),该函数在最后一个连字符之前有5位数,根据正则表达式无效.但该函数返回true.任何人都可以解释原因吗?

coo*_*run 36

用于验证电话号码的JavaScript:

function phonenumber(inputtxt) {
  var phoneno = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
  if(inputtxt.value.match(phoneno)) {
    return true;
  }
  else {
    alert("message");
    return false;
  }
}
Run Code Online (Sandbox Code Playgroud)

以上脚本匹配:

XXX-XXX-XXXX
XXX.XXX.XXXX
XXX XXX XXXX

如果您想在以下方式使用+号前面的+号:
+ XX-XXXX-XXXX
+ XX.XXXX.XXXX
+ XX XXXX XXXX请
使用以下代码:

function phonenumber(inputtxt) {
  var phoneno = /^\+?([0-9]{2})\)?[-. ]?([0-9]{4})[-. ]?([0-9]{4})$/;
  if(inputtxt.value.match(phoneno)) {
    return true;
  }  
  else {  
    alert("message");
    return false;
  }
}
Run Code Online (Sandbox Code Playgroud)


Bro*_*ier 25

此正则表达式/^(\([0-9]{3}\)\s*|[0-9]{3}\-)[0-9]{3}-[0-9]{4}$/验证以下所有内容:

'123-345-3456';
'(078)789-8908';
'(078) 789-8908'; // Note the space
Run Code Online (Sandbox Code Playgroud)

要打破正在发生的事情:

正则表达式可视化

  1. 开头的组验证两种方式,(XXX)或者XXX-,在右括号后可选地使用空格.
  2. 小组检查后的部分 XXX-XXX


Muh*_*Ovi 5

这是我的方法。

function validate(phone) {
    const regex = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
    return regex.test(phone)
}
Run Code Online (Sandbox Code Playgroud)

然后,

validate('1234567890')     // true
validate(1234567890)       // true
validate('(078)789-8908')  // true
validate('123-345-3456')   // true
Run Code Online (Sandbox Code Playgroud)