【问题标题】:Validating Phone Number based on country code根据国家代码验证电话号码
【发布时间】:2017-03-30 10:22:40
【问题描述】:

如何根据 Javascript 中的国家/地区代码验证电话号码。

例如:印度-以91-xxxxxxxxxxUK-44-xxxxxxxxxxSZ-268-22xxxxxx 等开头。像这样,它应该使用我将输入的电话号码验证其他国家/地区的国家/地区代码。

以下是我尝试过的代码,但它仅适用于一个国家/地区。同时如何使用其他国家/地区代码进行验证。

function validateMobNo(mobno){
var mobno2;
var flag=false;
var mlen= mobno.length;
//alert(mobno.substr(3,mobno.length-3));
if(mobno.charAt(0)!='+' && mlen==10){
    mobno2="+91-"+mobno;
    alert("1>>your mobile wants to be in "+mobno2);
    flag=true;
}
else if(mobno.charAt(0)=='+'){
    if(mobno.substr(0,3)=='+91' && mobno.length==13){
        mobno2=mobno.substr(0,3)+"-"+mobno.substr(3,mobno.length-3);
        alert("2>>your mobile wants to be in "+mobno2);
        flag=true;      
    }
}
else if(mobno.indexOf("-")<0&&mobno.length==12 && mobno.substr(0,2)=='91'){
    mobno2=mobno.substr(0,2)+"-"+mobno.substr(3,mobno.length-2);
    alert("3>>your mobile wants to be in "+mobno2);
    flag=true;
    }
else
    alert("Please correct your mobile No");
if(flag==true)
   document.mobvalidate.mobno.value=mobno2;
else
    document.mobvalidate.mobno.focus()
return flag;

}

【问题讨论】:

  • 最简单的方法是拥有一个包含所有正则表达式模式的对象,以测试各种不同国家的电话号码格式,由国家代码键入。为此使用字符串操作会使它变得比它需要的更复杂、更脆弱
  • 有人已经为你完成了辛勤的工作,这个int-tel-input jQuery 插件可以解决问题。
  • 我以前用过这个库。这是有据可查的。不要重新发明轮子。 github.com/googlei18n/libphonenumber

标签: javascript validation phone-number


【解决方案1】:

使用some 方法遍历每个国家代码并使用常规错误表达式进行评估:

country_codes=['91-', 'UK-44-', 'SZ-268-22']
phone="91-123456789";

is_valid_number = country_codes.some(elem => phone.match('^' + elem));
console.log(is_valid_number );

【讨论】:

  • 正是在寻找类似这样的代码。谢谢
猜你喜欢
  • 2021-10-03
  • 1970-01-01
  • 2013-11-02
  • 2013-12-01
  • 2022-11-11
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
相关资源
最近更新 更多