我在一些网站上找到了这个代码,它工作得很完美。它验证电话号码是以下格式之一: (123) 456-7890或123-456-7890

问题是我的客户端(我不知道为什么,可能是客户端)想要添加另一种格式,连续的十个数字,像这样:1234567890。

我用这个正则表达式,

/^(\()?\d{3}(\))?(-|\s)?\d{3}(-|\s)\d{4}$/

我如何添加它也验证另一种格式?我不擅长使用正则表达式。


当前回答

如果你想找10个数字,那就忽略除数字-以外的所有数字

   return value.match(/\d/g).length===10;

其他回答

试试这个js函数。 如果匹配则返回true,如果失败则返回false 裁判

函数ValidatePhoneNumber(电话){ 返回/ ^ \ + ?([0 - 9]{2})\)?(-。] ?([0 - 9]{4})[-。] ?([0 - 9]{4})美元/ test(电话); }

如果你想找10个数字,那就忽略除数字-以外的所有数字

   return value.match(/\d/g).length===10;

我要做的是忽略格式并验证数字内容:

var originalPhoneNumber = "415-555-1212";

function isValid(p) {
  var phoneRe = /^[2-9]\d{2}[2-9]\d{2}\d{4}$/;
  var digits = p.replace(/\D/g, "");
  return phoneRe.test(digits);
}

其中str可以是以下格式中的任何一种: 555-555-5555 (555) 555 - 5555 (555) 555 - 5555 555 555 5555 5555555555 1 555 555 5555

函数电话检查(str) { var isphone = /^(1\s|1|)?((\(\d{3}\))|\d{3})(\-|\s)?(\d{3})(\-|\s)?(\d{4})$/.test(str); 警报(电话); } 电话检查(“1 555 555 5555”);

我选择的正则表达式是:

/^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/im

有效的格式:

(123) 456-7890 (123)456-7890 The 123-456-7890 123.456.7890 1234567890 + 31636363634 075-63546725