首页 > 解决方案 > 如何创建 JavaScript 正则表达式以验证带扩展名的国际电话号码

问题描述

我正在尝试将国际电话号码与分机号相匹配,例如:+44 (123) 123 4567 分机。123 和电话号码,例如:+44 (123) 123 4567。当我输入分机时,它返回一个无效的电话号码。我还想匹配美国电话号码,例如 (212) 555-1212 和其他电话号码,例如 +44 20 7893 4567。我期待用户使用提示输入。我的代码如下:

function isValidTelephoneNumber(telephoneNumber){
    var telRegExp = /^(\+\d{1,3} ?)?(\(\d{1,5}\)|\d{1,5}) ?\d{3,4} ?\d{0,7}( (x|xtn|ext|extn|pax|pbx|extension)?\.? ?\d{2-5})?$/i;
    return telRegExp.test(telephoneNumber);
}

var phoneNumber = prompt("Please enter a phone number.", "");

if (isValidTelephoneNumber(phoneNumber)){
    alert("Valid Phone Number");
} else {
    alert("Invalid Phone Number");
}

标签: javascriptregexvalidationphone-number

解决方案


最后一部分你有一个语法错误?\d{2-5}?\d{2,5} 我也建议你使用\s+你的空白。


推荐阅读