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で式を書くのは間違っていると思います。誰かが助けることができますか?

PS以下は、式をテストした正規表現オンラインテスターからの画像です。

表現のテスト

4

2 に答える 2

1

私はあなたのコードに2つの問題を見ることができます:

  • </form>最後の前に終了タグがありません</div>
  • 正規表現に2つの異なる変数名を使用しています:phoneRegexdeptRegex

これらの問題を修正すると、コードは正常に実行されます。jsFiddleで動作する様子をご覧ください:http://jsfiddle.net/XFWGk/

それがうまくいかない場合、問題はおそらくあなたのinlineMsg機能です。私はそれをよく知らないので、正しく使用していることを確認してください。

于 2012-04-20T13:28:17.047 に答える
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ダイヤルプレフィックスだけでなく、米国/カナダで使用されている011ダイヤルプレフィックスも含めることができます。

于 2012-11-09T01:40:21.440 に答える