JQuery подтвердить номер телефона с помощью RegEx - PullRequest
1 голос
/ 17 апреля 2011

У меня есть простая форма ajax, и я пытаюсь проверить, что она

  1. имеет значение
  2. , это значение состоит из 10 цифр

Я пытаюсь использовать RegEx для этого.Вот что у меня так далеко.

var reg = new RegExp("/[0-9]{10}/");
$("#call_form").bind("submit", function() {
       if ($("#call_number").val().length < 1 && reg.test($("#call_number").val())) {
               $("#call_error").show();
                return false;
        }
});

Я знаю, что проблема связана с RegExp, как будто я удаляю эту часть кода, она подтверждает, что поле имеет значение.

EDIT : Вот последнее регулярное выражение, которое я использую

var regEx = new RegExp("/[0-9]/");

$("#call_form").bind("submit", function() {

    if ($("#call_number").val().length != 10 && !$("#call_number").val().match(regEx)) {
        $("#call_error").show();
        $.fancybox.resize();
        return false;
    }
});

РЕДАКТИРОВАТЬ 2 Используя предложения, вот что я использую, что позволяет использовать пробелы и тире, которые затем удаляются при проверке

    $("#call_form").bind("submit", function() {
var Phone = $("#call_number").val().replace(/\D+/g,'');

if (Phone.length != 10) {
        $("#call_error").show();
        $.fancybox.resize();
        return false;

    }
});

Ответы [ 6 ]

3 голосов
/ 12 ноября 2012

Вот то, что я использую - это просто, просто отправлять сообщения, если кто-то ищет то же самое.

var a = PHONE_FROM_FIELD;
var filter = /^[0-9-+]+$/;
if (filter.test(a)) {
     return true;
}
else {
     return false;
}

Ура! * * 1004

3 голосов
/ 17 апреля 2011

Никто не сказал, что было не так с вашим первоначальным усилием - это косая черта (/).При вызове RegExp в качестве конструктора вам не нужны косые черты (которые являются токенами для обозначения буквального выражения регулярного выражения), например:

var re = /\w+/i;

эквивалентно:

var re = new RegExp('\\w+','i');

Обратите внимание, что для специальных символов необходимо указывать обратную косую черту.

И последнее - разрешить пробелы в числе.Вы можете удалить их перед тестированием или хранением.Пользователи считают, что читать цифры в блоках по 3 или 4 цифры гораздо проще, например,

  • 1234 871 098 легче читать, чем 1234871098.
3 голосов
/ 17 апреля 2011

Ваше регулярное выражение прекрасно работает для меня ... Вы можете сократить его до /[0-9]{10}/.

Ваша проблема здесь:

$("#call_number").val().length < 1. Если число длиной 10 символов, оно никогда не будет меньше 1, нет?

Вы, вероятно, имели в виду что-то вроде этого:

$("#call_number").val().length === 10

1 голос
/ 04 августа 2015
function validate_Phone_Number() {
    var number = $('field_Id').val();
    var filter = /^((\+[1-9]{1,4}[ \-]*)|(\([0-9]{2,3}\)[ \-]*)|([0-9]{2,4})[ \-]*)*?[0-9]{3,4}?[ \-]*[0-9]{3,4}?$/;
    if (filter.test(number)) {
        return true;
    }
    else {
        return false;
    }
}
1 голос
/ 17 апреля 2011

как то так:

var regEx = /^(\+\d)*\s*(\(\d{3}\)\s*)*\d{3}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}$/;
$("#call_form").bind("submit", function() {
       var val = $("#call_number").val();
       if (!val.match(regEx)) {
            $("#call_error").show();
            return false;
        }
});
0 голосов
/ 23 ноября 2014
// check phone number validation
        function validatePhoneNumber(number)
        {
            count=number.length;
            if(number[0]!=" " && number[0]!="-" && number[count-1]!=" " && number[count-1]!="-")
            {
                temp=number.replace(" ", "");
                temp=temp.replace("-", "");
                if($.isNumeric(temp))
                {
                    if(temp.length>=7 && temp.length<=12)
                    {
                        flag=1;
                        for(i=1;i<count;i++)
                        {           
                            if(number[i]=="-" || number[i]==" ")
                            {
                                if(number[i-1]=="-" || number[i-1]==" " || number[i+1]=="-" || number[i+1]==" ")
                                {
                                    flag=0;
                                }
                            }               
                        }

                        if(flag==1)
                        {
                            valid=1;
                        }
                        else
                        {
                            valid=0;
                        }
                    }
                    else
                    {
                        valid=0;
                    }
                }
                else
                {

                    valid=0;
                }

            }
            else
            {
                valid=0;
            }
            return valid;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...