2012-02-13 6 views
1

У меня есть проверка jQuery на форме, проверка в настоящее время проверяет, что поле номера телефона не пустое и является числом, но я бы хотел, чтобы он мог обрабатывать пользователя, пробел после кода мобильного/района.Проверка формы JQuery - номер телефона

Может кто-нибудь посоветует, что мне нужно сделать, чтобы это разрешить?

Это мой текущий код -

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 validate, а не заново изобретать колесо

быстрый поиск Google для чисел ик с JQuery Validate превратило эту вверх

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

Смежные вопросы