2015-04-16 6 views
-5

, так что я недавно преподаю jQuery, и я просто пришел к главе AJAX. Существует пример, показывающий, как проверить правильность номера телефона, и я не знаю, что происходит и как он работает. Вот фрагмент кода:Как работает эта проверка номера телефона?

// Validate a phone number field 
$("#form").submit(function(event) { 
    var inputtedPhoneNumber = $("#phone").val(); 

    // Match only numbers 
    var phoneNumberRegex = /^\d*$/; 

    // If the phone number doesn't match the regex 
    if (!phoneNumberRegex.test(inputtedPhoneNumber)) { 

     // Usually show some kind of error message here 

     // Prevent the form from submitting 
     event.preventDefault(); 
    } else { 

     // Run $.ajax() here 
    } 
}); 

То, что я не понимаю, это:

var phoneNumberRegex = /^\d*$/; 

Я сделал некоторые исследования для проверки номера телефона и все, что-то вроде этого: пара "// "и некоторые вещи между ними, и я никогда не видел этого раньше, каждый может объяснить, что здесь происходит и почему это работает? Любая помощь будет оценена, спасибо!

+0

вы можете захотеть поиграть с: http://lea.verou.me/regexplained/ – nobe4

+0

, он просто проверяет, что это все числовые цифры. Ничего больше. Это то, что означает «d». – dgig

+0

\ d аналогичен [0-9], а^означает начало с $ означает конец с. В этом случае цифры. * означает ноль или более случаев – AAB

ответ

0

/^\d*$/ просто соответствует строке, которая начинается с (^) числа, содержит произвольное количество цифр (\d*), а также заканчивается с номером ($).

2

В JavaScript регулярное выражение может быть определено путем размещения шаблона регулярного выражения между двумя символами /.

В случае вашего примера регулярное выражение означает:

  • ^ - начать соответствие с самого начала последовательности строки;
  • \d* - соответствие нулю или более цифр символов 0-9;
  • $ - сохраняйте соответствие до самого конца последовательности строк.

Короче говоря, этот шаблон требует, чтобы вся последовательность строк состояла только из цифр и ничего больше.

Получаемый объект регулярного выражения может затем вызвать функцию test в последовательности строк, чтобы проверить, соответствует ли эта последовательность шаблону или нет, и будет оценивать только true, если последовательность строк точно соответствует регулярному выражению.

0

http://regexr.com/3ar56 - Это даст вам представление о том, что делает оператор regex.

var phoneNumberRegex = /^\d*$/; 

приведенный выше код устанавливает переменную phoneNumberRegex с выражением regex. Оператор не делает ничего по себе, но

!phoneNumberRegex.test(inputtedPhoneNumber) 

говорит он, чтобы проверить переменную inputtedPhoneNumber, чтобы увидеть, если он не отформатирован, как утверждение регулярного выражения предполагает, что это должно быть. ^\d видит, начинает ли он с цифры * говорит, что он примет любое количество предыдущего свойства regex, в данном случае \d, которое проверяет цифру. $ указывает, что, когда дана последняя цифра, она должна прекратить сопоставление. Если вы поместите пробел после номера, он не будет соответствовать.

так это: ^/d*$

говорит: , если она начинается с цифрой собрать все между этой первой цифрой и концом строки цифр.

Если строка внутри введенного номера телефона не имеет указанного формата, она не будет соответствовать.

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