2012-06-14 2 views
5

Как я могу разрешить пробелы только с точностью до цифр, с минимум 8 цифрами? Номера телефонов намного проще вводить, когда разрешены пробелы. например 0400 123 456, 9699 1234.jQuery проверка номера телефона разрешает пробелы, минимум 8 цифр

Вот мой код до сих пор, я получил только минимум 8 цифр проверки работы:

jQuery.validator.addMethod(
    "phone", 
    function(phone_number, element) { 
    return this.optional(element) || /^\d{8}$/.test(phone_number); 
    }, 
    "Please enter numbers only" 
); 
+0

Привет, нашел этот пост в поисках ответа на подобный вопрос. Никогда не использовал addMethod для создания настраиваемого правила проверки, где в потоке документа вы указываете настраиваемое правило? И как тогда вы называете это из раздела правил вашей функции проверки подлинности? – Barbs

ответ

4

Удалите пробел перед проверки:

return this.optional(element) || /^\d{8,}$/.test(phone_number.replace(/\s/g, '')); 

Таким образом, вы сохраняете пространство

+0

Спасибо, что работает, но я хочу как минимум 8 номеров, некоторые номера телефонов будут содержать 10 цифр. Как я могу убедиться, что число цифр больше 8? – JV10

+0

@ JV10 просто добавляет запятую после '8' внутри фигурных скобок :), отредактировал мой ответ за ваш комментарий –

1

Мое предложение просто удалить пробелы из phone_number прежде, чем утвердить.

jQuery.validator.addMethod(
    "phone", 
    function(phone_number, element) { 
    return this.optional(element) || /^\d{8}$/ *$/.test(phone_number.replace(/\s/g, "")); 
    }, 
    "Please enter numbers only" 
); 
+1

Я бы предпочел сохранить пробелы, так как при отправке формы получателю будет легче читать. – JV10

+0

Я обновил ваш комментарий. –

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