2012-03-29 15 views
0

私は電話番号を (000)111-1111 として検証したいと思います。ユーザーが数字だけを入力するとうまくいくこのスニペットを使用しています。しかし、彼はカッコで始まっている場合、すべてのクラッシュが..私は本当に助けを必要と...jQueryは電話番号を確認します

$("input#phone1,input#phone2").keyup(function() { 
     var curchr = this.value.length; 
     var curval = $(this).val(); 
     //var numericReg = /^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$/; 
     var numericReg = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/; 
     if(!numericReg.test(curval)) { 
      $(this).prev('label').append(tag_error + numeric_chars_only + end_tag); 
      console.log($(this)+numeric_chars_only); 
     } 
     if (curchr == 3) { 
      $("input#phone1").val("(" + curval + ")" + " "); 
     } else if (curchr == 9) { 
      $("input#phone1").val(curval + "-"); 
     } 
    }); 
+0

'tag_error'、' numeric_chars_only'、 'end_tag'はどこに定義されていますか? –

+1

これはユーザーのための警告です。 –

+0

日曜日!うん、私はあなたのためにこれを作成しました - http://jsfiddle.net/5NCQg/18/あなたはデモを表示できますか?どのようにonkeyup検証を意味しますか? :)また、これはhttp://stackoverflow.com/questions/995183/how-to-allow-only-numeric-0-9-in-html-inputbox-using-jquery ** OR ** http:// stackoverflow。 com/questions/6960596/jquery-for-phone-numbersのほうがアイデアを良くするかもしれません! Cheers –

答えて

2

私は思いますD \ {4} $

それはを可能に - [ - ] \ D {3} [](\ D {3}?)

^:???これを使用して示唆しています(555)555-5555、 5555555555、 555 555 5555、 555-555-5555、 (555)-555-5555

ETC.

3

私は、これは何が必要だと思う:

/^\(\d{3}\) \d{3}-\d{4}$/ 

var x = '(000) 111-1111'.replace(/^\(\d{3}\) \d{3}-\d{4}$/, ""); 
alert(x);​ // alerts empty string. the regular expression worked. 

Live DEMO

+0

はい、ユーザーが「角かっこ」の入力を開始した場合、スニペットは最初の文字をブラケットに変更してからすべてがクラッシュします:Sユーザーが –

+0

@AngelMと入力した場合、角かっこを変更しないようにする必要があります。あなたは何を意味するのでしょうか? – gdoron

+0

角括弧やスペースやダッシュがない場合は、私はOPもそれが欲しかったと思います:-) – altschuler

関連する問題