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;
}
我正在测试使用的函数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;
  }
}以上脚本匹配:
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;
  }
}
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
要打破正在发生的事情:

(XXX)或者XXX-,在右括号后可选地使用空格.XXX-XXX这是我的方法。
function validate(phone) {
    const regex = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
    return regex.test(phone)
}
然后,
validate('1234567890')     // true
validate(1234567890)       // true
validate('(078)789-8908')  // true
validate('123-345-3456')   // true