根据国家代码验证电话号码

问题描述:

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

例如:印度 - 以91-xxxxxxxxxx,UK-44-xxxxxxxxxx,SZ-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; 

} 
+0

最简单的方法是有一个包含所有的正则表达式模式为对象测试各国的电话号码格式,并以国家代码为关键字。使用字符串操作会使它变得更加复杂和脆弱,比它需要的更多 –

+0

有人已经为你做了这项工作[int-tel-input](https://github.com/ jackocnr/intl-tel-input)jQuery插件可以做到这一点。 –

+0

我以前用过这个库。它有据可查。不要重新发明轮子。 https://github.com/googlei18n/libphonenumber – ppovoski

使用some方法遍历每个国家代码,并定期erxpressions评价:

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);

+0

正好在寻找类似这样的代码。谢谢 –