2012-02-13 15 views
1

フォームにjQuery検証をセットアップしました。検証では現在、電話番号フィールドが空ではなく番号であることがテストされていますが、モバイル/エリアコードの後のスペース。Jqueryフォーム検証 - 電話番号

誰もがこれを許可するために必要なことをアドバイスできますか?

これは私の現在のコードである - 私は非常にjQuery validateを使用することをお勧めではなく、再発明し、ホイール

if((phone.length == 0) || (names == 'Please Enter Your Contact Number (no space)')){ 
     var error = true; 
     $('.error').fadeIn(500); 
     $('.pStar').fadeIn(500); 

    }else{ 
     var value = $('#phone').val().replace(/^\s\s*/, '').replace(/\s\s*$/, ''); 
     var intRegex = /^\d+$/; 
     if(!intRegex.test(value)) { 
      var error = true; 
      $('.error').fadeIn(500); 
      $('.pStar').fadeIn(500); 

     } else{ 
     $('.pStar').fadeOut(500); 
     } 
    } 
+0

いくつかの有効/無効入力を提供できますか? – hsz

答えて

5

jqueryの検証と英国の番号のための迅速なGoogle検索は

これを上げ

filters

jQuery.validator.addMethod('phoneUK', function(phone_number, element) { 
    return this.optional(element) || phone_number.length > 9 && 
    phone_number.match(/^(\(?(0|\+44)[1-9]{1}\d{1,4}?\)?\s?\d{3,4}\s?\d{3,4})$/); 
    }, 'Please specify a valid phone number' 
); 
+0

あなたの助けを歓迎 – Dancer

+0

私は助けることができる嬉しい@Paul – mcgrailm

3

この正規表現を使用して電話番号を検証します。

var pattern = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/; 
if(!$('#phone').val().test(elementValue)){ 
    //Invalid number 
} 

この正規表現は、任意(を開始またはエリアコードの)終了受け入れると、任意にエリアコードの後の最初の3桁の数字の後に-を受け入れます。

+0

もちろん、これは北米の番号のためにのみ動作します。 – chris

+0

申し訳ありません私は述べておくべきです - これは英国の番号のために働く必要があります。 – Dancer

+0

はい、ほとんどアメリカの番号ですが、 '()'と '-'はオプションなのでほとんどまたは全く変更されずに他の電話番号フォーマットも検証します。 – ShankarSangoli

関連する問題