2017-10-14 4 views
0

私は、ユーザーが083,085,086,087,089で始まり、長さが10桁JavaScriptのアイルランドのモバイル正規表現

私はValidate an Irish mobile phone numberが、私を見てする必要があり、有効なアイリッシュ・モバイルを追加したことを他のものの間で確認するためのフォームを検証しようとしていますそれは私が

if(!CheckPhone(d)) 
     { 
      alert("You have not entered a valid Irish mobile number"); 
      document.getElementById('phoneNumber').focus(); 
      return false;  
     } 
を検証しよう

私のチェック機能

function CheckPhone(pNumb) { 
    var paswd=/08[3679]-\d{0,10}$/; 
    return paswd.test(pNumb);} 

を動作させることはできません

しかし、有効な番号であっても、エントリが無効であると言われます。私は何か間違ったことをしたと確信していますが、私は正規表現ではなくプログラマではないので、何がわかりません。

Jayce444に対する回答として、私はチェックフォン機能を追加すると、電子メールとパスワードの機能が無視され、これらのフィールドに無効な値パスワードのテスト@テストとp2

<script> 

function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
    return re.test(email); 
} 
function CheckPassword(inputtxt) { 
    var paswd=/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,20}$/; 
    return paswd.test(inputtxt); 
} 
function CheckPhone(pNumb) { 
    var paswd=08[3679]-\d{7}$; 
    return paswd.test(pNumb); 
} 
function validateForm() { 
    var a=document.forms["subForm"]["firstName"].value; 
    if (a===null || a==="") 
     { 
      alert("All fields in the form are required You must enter your first name"); 
      document.getElementById('firstName').focus(); 
      return false; 
     } 
    var b=document.forms["subForm"]["lastName"].value; 
    if (b===null || b==="") 
     { 
      alert("All fields in the form are required You must enter your last name"); 
      document.getElementById('lastName').focus(); 
      return false; 
     } 
    var c=document.forms["subForm"]["email"].value; 
    if (c===null || c==="") 
     { 
      alert("All fields in the form are required You must enter your email address"); 
      document.getElementById('email').focus(); 
      return false; 
     } 
     if(validateEmail(c)===false) 
     { 
      alert("You must enter a valid email address"); 
      document.getElementById('email').focus(); 
      return false;  
     } 
     var d=document.forms["subForm"]["phoneNumber"].value; 
     if (d===null || d==="") 
     { 
      alert("All fields in the form are required You must enter your phone number"); 
      document.getElementById('phoneNumber').focus(); 
      return false; 
     } 
     if(CheckPhone(d)===false) 
     { 
      alert("You have not entered a valid Irish mobile number"); 
      document.getElementById('phoneNumber').focus(); 
      return false;  
     } 
     var e=document.forms["subForm"]["password"].value; 
     if (e===null || e==="") 
     { 
      alert("All fields in the form are required You must enter a password"); 
      document.getElementById('password').focus(); 
      return false; 
     }  
     if(CheckPassword(e)===false) 
     { 
      alert("You have not entered a valid password"); 
      document.getElementById('password').focus(); 
      return false;  
     } 

} 
</script> 

答えて

2

この正規表現は動作します:

08[3679]-\d{7}$ 

ところで、このサイト:https://regex101.com/をテスト正規表現を助け、彼らが実際にやっているものを見るために良いです。あなたの2番目の部分、\d{0,10}は "0〜10桁に一致"と言います。あなたが望むのは、ダッシュの後ろの7桁に正確にマッチさせることです。

+0

ありがとうございますが、これは私の妥当性チェックを破るもので、チェックの電子メールとパスワードの機能が失敗しています。失敗したスクリプトの完全なコード。 コメントにコードを投稿できないため、私の質問を編集してみます – Graham

+0

今、電話番号確認は機能していますが、電子メールとパスワードの確認は行われていません。これは別の問題 – Jayce444

+0

と正規表現とチェックコードが入っているため、パスワードと電子メールの検証に失敗します。 まだ電話機の正規表現とチェックコードではまだテストしていませんが、それは後で実行して確定します – Graham