2016-11-16 15 views
0

Javascriptで国コードに基づいて電話番号を検証する方法。国番号に基づいて電話番号を確認する

たとえば、インドは91-xxxxxxxxxx,UK-44-xxxxxxxxxx,SZ-268-22xxxxxxなどで始まります。このように私は入力する電話番号で他の国の国コードを検証する必要があります。

以下は試したコードですが、それは1カ国のみです。並行して他の国の国コードで検証する方法。

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

答えて

1

それぞれの国コードをループに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

まさにこのようなコードを探しています。ありがとうございました –

関連する問題