«Единственный способ творить великие дела – это любить то, что ты делаешь»
JavaScript



Игра «Морской Бой» на JavaScript: Простая Игра и Игра для Двоих



Далее на странице...



Ранее было рассмотрено достаточно тонкостей и нюансов при составлении регулярных выражений.

Теперь нужно выполнить самостоятельное задание.

Решить это задание легче, чем составить регулярное выражение для поиска сайта в строке.

Нужно написать регулярное выражение для поиска в тексте номера кредитной карты. Текст: "Иван вчера потерял свою кредитку, ее номер 1178-9087-2384-8787. Поэтому он пошел в банк и описал ситуацию. Там пошли ему навстречу и выдали новую кредитку под номером: 1103-8899-0811-1722".

Напомню, что кредитные карты имеют формат: xxxx-xxxx-xxxx-xxxx. Например: 1178-9087-2384-8787

При этом, вам нужно найти только те номера, в которых первые 4 цифры содержат только 0, или 1 или 2, или 3, т.е. вас, например, устроит номер 1103-8899-0811-1722, но не устроит 1490-8877-7345-8111 (т.к. здесь присутствует цифры 4 и 9, не удовлетворяющие нашим условиям).

При этом номер кредитки нужно не просто найти, а вытащить в переменную result и вывести на экран.

Далее будут рассмотрены два решения.



Решение №1

Фрагмент кода

<script type = "text/javascript">

var card = "Иван вчера потерял свою кредитку, ее номер 1178-9087-2384-8787. Поэтому он пошел в банк и описал ситуацию. Там пошли ему навстречу и выдали новую кредитку под номером: 1103-8899-0811-1722";

var regular_all = /[0-9-]{19}/g; /* Регулярное выражение для поиска всех номеров кредитных карт в строке */
var regular_select = /[0-3]{4}[0-9-]{15}/g; /* Регулярное выражение для поиска номера кредитной карты, первые четыре символа, которого состоят из цифр от 0 до 3 */

var result_all = card.match(regular_all);
var result_select = card.match(regular_select);

document.write(result_all + " - Это все номера кредитных карт в строке <p>");
document.write(result_select + " - Номер кредитной карты, где первые четыре цифры находятся в диапазоне от 0 до 3");

</script>

Результат

Пояснения к решению №1:

  • Номер кредитной карты состоит из 19-ти символов xxxx-xxxx-xxxx-xxxx.

  • Переменная regular_all содержит регулярное выражение [0-9-]{19} для поиска номера кредитной карты, состоящего из любых цифр от 0 до 9.

    Диапазон [0-9-] - цифры от 0 до 9 и дефис в количестве {19} символов.

  • Добавляем к регулярному выражению глобальный поиск g для поиска всех номеров кредитных карт в строке.

  • Переменная regular_select содержит регулярное выражение [0-3]{4}[0-9-]{15} для поиска номера кредитной карты, первые четыре символа, которого состоят из цифр от 0 до 3.

Решение №2

Фрагмент кода

<script type="text/javascript">

var card = "Иван вчера потерял свою кредитку, ее номер 1178-9087-2384-8787. Поэтому он пошел в банк и описал ситуацию. Там пошли ему навстречу и выдали новую кредитку под номером: 1103-8899-0811-1722";

var regular_all = /\d{4}-\d{4}-\d{4}-\d{4}/g; /* Регулярное выражение для поиска всех номеров кредитных карт в строке */
var regular_select = /[0123]{4}-\d{4}-\d{4}-\d{4}/g; /* Регулярное выражение для поиска номера кредитной карты, первые четыре символа, которого состоят из цифр от 0 до 3 */

var result_all = card.match(regular_all);
var result_select = card.match(regular_select);

document.write(result_all + " - Это все номера кредитных карт в строке <p>");
document.write(result_select + " - Номер кредитной карты, где первые четыре цифры находятся в диапазоне от 0 до 3");

</script>

Результат

Пояснения к решению №2:

  • Номер кредитной карты имеет формат xxxx-xxxx-xxxx-xxxx. То есть это 4 последовательности из 4-ч цифр, разделенных дефисом

  • Переменная regular_all содержит регулярное выражение:

    \d{4}-\d{4}-\d{4}-\d{4} для поиска номера кредитной карты, состоящего из любых цифр от 0 до 9.

    Любая цифра от 0 до 9 \d и квантор {4} (что значит ровно 4) образуют шаблон, который обозначает последовательность из любых 4-х цифр от 0 до 9 \d{4}.

    Таких шаблонов всего 4, разделенных дефисом.

  • Переменная regular_select содержит регулярное выражение:

    [0123]{4}-\d{4}-\d{4}-\d{4} для поиска номера кредитной карты, первые четыре символа, которого состоят из цифр от 0 до 3.

    [0123]{4} - Диапазон [0123] из цифр от 0 до 3 в количестве {4} символов.





Отзывы и комментарии:

Комментариев нет...

Оставить отзыв:

Ваше Имя:

Текст комментария:

Ответьте на вопрос:

Сколько дней в Високосном году?


Объект String
Практическая задача с кредитной картой
7244
Свойство length - Число символов в строке
7243
Практическая задача - Свойство length
7245
Регистр строки - toUpperCase и toLowerCase
7248
Практическая задача - Методы toUpperCase и toLowerCase
7245
Поиск совпадений в строке - Методы indexOf и lastIndexOf
7244
Практическая задача - Методы indexOf и lastIndexOf
7244
Метод slice - Копирование из строки
7243
Практическая задача - Метод slice
7243
Методы charAt и charCodeAt - Возвращаем символ и КОД символа
7244
Практическая задача - Методы charAt и charCodeAt
7243
Метод search - Регулярные выражения
7243
Регулярные выражения - Начало и Конец строки
7244
Практическая задача - Регулярные выражения
7243
Метод match - Возвращает массив из совпадений - Глобальный поиск g
7245
Поиск сайта в строке
7243
Метод replace - Замена совпадений
7243
Практическая задача - Метод replace
7244
Метод trim в - Удаление пробелов в начале и конце строки
7243
Метод substring - Извлекает часть строки
7243
Метод split в JavaScript - Разделитель строки
7243

Тематические публикации
Популярные заметки
Последние заметки