Далее на странице...
Здесь при помощи регулярных выражений будет решена задача по проверка цифрового номера 123-4567, состоящего из семи случайных цифр, разделенных дефисом.
Эта же задача решалась различными способами здесь и здесь (по первой ссылке Вы найдете исходное условие и 3 варианта решений, по второй - модифицированное условие - его более сложные варианты).
Условие задачи:
Написать функцию, которая получает цифровой номер в виде: 123-4567 или 1234567.
Функция возвращает либо номер, либо false - Ложь. Номер должен состоять из семи цифр от 0 до 9, возможно разделенных после третьей цифры дефисом.
Использование регулярных выражений - Проверка цифрового номера с дефисом
Что нужно знать?
1) См. шпаргалку по регулярным выражениям.
2) См. тему Свойства и методы строковых объектов, где подробно рассматривалась работа с регулярными выражениями.
3) Метод search.
<script type="text/javascript">
function input(phone){
/* Регулярное выражение для проверки номера из семи цифр: 1234567 или 123-4567 */
var regular = /^\d{3}-?\d{4}$/;
/* Ищем совпадение по регулярному выражению, т.е. по шаблону */
var result = phone.search(regular);
/* Если совпадение не найдено, возвращаем ЛОЖЬ, иначе возвращаем полученный номер */
if(result == -1){
return false;
}
else{
return phone;
}
}
var phone_N = prompt("Введите 7-ми значный номер из цифр от 0 до 9. Попробуйте после третьей цифры разделить их дефисом");
var result = input(phone_N);
document.write(result);
</script>
Проверка цифрового номера с использованием регулярных выражений
Рассмотрим используемое здесь регулярное выражение: ^\d{3}-?\d{4}$.
-
\d - это цифра, {7} - ровно 7, ^ - начало строки и $ - конец строки, ? - 0 или 1.
-
Следовательно, по регулярному выражению, т.е. по составленному шаблону мы ищем 7 последовательно расположенных цифр. После третьей цифры может встретиться тире, но только один раз (0 или 1 - квантор ?). Кроме этого исключены ситуации, при которых пользователь может ввести какие либо символы в начале или конце строки.