0

ユーザーが自分の携帯電話番号を次の形式で入力できるようにしたいと思います。

+66 798644356

また

798644356

したがって、基本的に国コードの有無にかかわらず。また、開き括弧と閉じ括弧 () を許可したいと思います

私は最初に以下のコードを実行して数値を制限することから始めましたが、+ 記号と括弧 () を使用できなくなるため、これは正しいアプローチではないことに気付きました。

        $('#signup-phone-number , #signup-mobile-number').keyup( function() {
           $(this).numeric();
        });

正規表現を使用できると読みましたが、これは初めてです。私はいくつかのグーグル検索を行いましたが、これは私が使用したい正規表現です:

^((+){0,1}91(\s){0,1}(-){0,1}(\s){0,1}){0,1}98(\s){0 ,1}(-){0,1}(\s){0,1}[1-9]{1}[0-9]{7}$

問題は、これをjqueryでどのように実装する必要があるかです?

4

4 に答える 4

1

以下の正規表現は、任意のタイプの数値に一致する可能性があります。覚えておいて+ください。オプションであると想定しています。ただし、数のカウントは処理しません

^\+?(\d[\d-. ]+)?(\([\d-. ]+\))?[\d-. ]+\d$

照合できる有効な数値は次のとおりです。

+91293227214
+3 313 205 55100
99565433
011 (103) 132-5221
+1203.458.9102
+134-56287959
(211)123-4567
111-123-4567
于 2013-08-05T11:41:17.163 に答える
1

検証には、通常jQuery Validator Pluginを使用します。

英国の電話番号のカスタム ルールは次のとおりです。

jQuery.validator.addMethod('ukPhone', function(value, element){
        return value.match(/^((\(44\))( )?|(\(\+44\))( )?|(\+44)( )?|(44)( )?)?((0)|(\(0\)))?( )?(((1[0-9]{3})|(7[1-9]{1}[0-9]{2})|(20)( )?[7-8]{1})( )?([0-9]{3}[ -]?[0-9]{3})|(2[0-9]{2}( )?[0-9]{3}[ -]?[0-9]{4}))$/);
}, 'Enter a valid phone number'); 

カスタムルールでプラグインを使用する方法:

jQuery('#form-id').validate({
     rules: {
        telephone: {
           required: true,
           ukPhone: true
        }
     }
 });
于 2013-08-05T11:44:31.197 に答える
0

正規表現の デモ

$('#phn_num').blur(function () {
    var reg = /(\+66)?( )?[0-9]{9}/;
    if(reg.test($(this).val())){
        alert('correct');
    }
});

+66 798644356と_798644356

デモ

HTML

<input type="text" id="phn_num" />

js

$('#phn_num').attr('maxlength','9');

$('#phn_num').keypress(function (evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) return false;

    return true;
});
于 2013-08-05T11:40:21.870 に答える