2012-04-18 24 views
0

初めて正規表現を使用していて、本当に驚きました!まあ、新しい発見は常に驚き:)。 JavaScriptで使用しています。私は方法を以下で使用しています。(そこに多くのフィールドがあり、すべてはこの電話の書式を除いて完全に正常に動作している)正規表現の問題:カスタム電話番号の書式設定

function validate(form) { 
    var phone = form.phone.value; 
    var phoneRegex = /^(\+|00)\d{2,3}-\d{1,2}-\d{3}-\d{4}$/g; 
    //Checking 'phone' and its regular expressions 
    if(phone == "") { 
     inlineMsg('phone','<strong>Error</strong><br />You must enter phone number.',2); 
    return false; 
    } 
    if(!phone.match(deptRegex)) { 
     inlineMsg('phone','<strong>Error</strong><br />Enter valid phone <br />+xxx-x-xxx-xxxx (or) <br />00xxx-x-xxx-xxxx.',2); 
    return false; 
    } 
    return true; 
} 

今HTML

<div id="wrapper"> 
    <form name="form" id="form" class="form" onsubmit="validate(this);return false"> 
<label for="phone">Phone:</label><input type="text" name="phone" id="phone" /> 
<input type="submit" value="Submit" class="submit" /> 
</div> 

私は私が間違って書いたかもしれないことを混同しています私はそれをテストしました。私はJavaScriptで表現を書くのは間違いだと思います。助けてもらえますか?

p.s以下は、私が式を試験したregular expression online testerの画像です。

Test of expression

+0

あなたの質問を少し詳しく説明できますか? –

+0

問題はなんですか?正規表現を使用するコードは何ですか? –

+0

あなたの正規表現は動作します:http://regexr.com?30me1あなたの問題はおそらく他の場所です。 – Sampson

答えて

1

私はあなたのコードには二つの問題を参照することができます

  • は、あなたがあなたのために2人の異なる変数名を使用している最後の</div>
  • 前に終了</form>タグを持っていません正規表現:phoneRegexdeptRegex

これらの問題を修正すると、コードはうまく動作します。

これでうまくいかない場合、おそらく問題はinlineMsgです。私はそれに精通していないので、それを正しく使用していることを確認してください。

+0

こんにちは、ありがとう男...これは、私の愚かなコードを再使用して間違いを、動作します。あなたは両方の点で正しいです。私は本当に感謝しています。 – AbdulAziz

+0

@AbdulAziz - 喜んで助けてください! –

0
^(\+|00)\d{2,3}-\d{1,2}-\d{3}-\d{4}$ 

これは+ NN [N] -n [n]は-nnn-NNNNまたは0NN [N] -n [n]は-nnn-nnnnの

どの国のためということで一致しましたか?

00ダイヤルプレフィックスと同様に、US/Canadaから使用されている011ダイヤルプレフィックスも含めることをお勧めします。