Yutex - Платный хостинг PHP.
Advego.ru - система покупки и продажи контента для сайтов, форумов и блогов

Технические фишки инфобизнеса 2014

Статьи для сайтов!!!
charAt и charCodeAt - Возвращаем символ и КОД символа Метод search - Регулярные выражения - Цифра Регулярные выражения - Начало и Конец строки

Метод search в JavaScript - Регулярные выражения - Введение - Объект String

Свойства и методы строковых объектов - Объект String

Урок №6 Метод search - Регулярные выражения - Цифра

Количество просмотров: 502

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

Что такое регулярные выражения?

Регулярные выражения - используются, когда нужно найти совпадение в строке с каким-либо шаблоном. Подробнее о регулярных выражениях будет сказано в следующем уроке.

Метод search - Регулярные выражения - Синтаксис

Метод search - Регулярные выражения - Синтаксис

Метод search похож на методы indexOf и lastIndexOf.

Он также ищет совпадение в строке и возвращает позицию (целое число), с которой оно начинается.

Если совпадений не найдено, метод search возвращает -1.

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

Для начала, чтобы понять синтаксис языка при использовании метода search и регулярных выражений, рассмотрим пример.

Попробуем найти слово в произвольной строке.

<script type="text/javascript">

var tomorrow = "Завтра мы поедем в Крым"; /* Произвольная строка */
var regular = /мы/; /* Создаем шаблон - Регулярное выражение */
var result = tomorrow.search(regular); /* Ищем шаблон regular в строке tomorrow */

document.write(result);

</script>

Для наглядности разберем подробнее этот пример - посмотрим, как здесь работает javascript:

var result = "Завтра мы поедем в Крым".искать(/мы/);

Итак, в примере было создано регулярное выражение (шаблон) /мы/, которое поместили в переменную regular и которое с помощью метода search искали в строке: "Завтра мы поедем в Крым".

В результате JavaScript выдал нам цифру 7 - это позиция, с которой начинается совпадение шаблона в строке.

Метод search - Регулярные выражения - \d - Цифра

Метод search - Регулярные выражения - \d - Цифра

Теперь для понимания того, где на практике могут использоваться регулярные выражения, рассмотрим следующий пример.

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

Для тех, кто не знает: почтовый индекс городов России состоит из шести цифр и не содержит букв.

Таким образом, с помощью регулярных выражений и метода search, нужно будет определить, есть ли в строке последовательность из шести цифр от 0 до 9.

В регулярных выражениях подобные вещи закодированы. Цифра от 0 до 9 в регулярных выражениях представлена, как \d (обратный слэш и буква d).

<script type="text/javascript">

var index = "Индекс города Воронеж 394000"; /* Строка, содержащая индекс */
var regular = /\d\d\d\d\d\d/; /* Регулярное выражение - последовательность из шести цифр */
var result = index.search(regular); /* Ищем регулярное выражение в строке */

document.write(result);

</script>

И снова давайте посмотрим, как в данном случае работает javascript:

var result = "Индекс города Воронеж 394000".искать(последовательность из шести цифр от 0 до 9);

В примере было указано регулярное выражение \d (то есть какая-либо цифра) шесть раз. Таким образом, мы искали последовательно расположенных, шесть цифр от 0 до 9

В результате Вы увидите число 22 - это индекс (порядковый номер)цифры 3 - той, с которой начинается последовательность.

Теперь рассмотрим пример, где почтовый индекс введен с ошибкой.

Если же пользователь сделает ошибку и введет, например, 5 цифр, или вместо цифры - букву, то в результате мы увидим -1. Это «говорит» о том, что в строке нет последовательности из шести подряд расположенных цифр, то есть в ней не найден почтовый индекс России.

Ситуация, при которой пользователь может ввести 7, 8 или более цифр будет разрешена в конце следующего урока, где будут использованы регулярные выражения ^ и $ - Начала и Конца строки.

<script type="text/javascript">

var index = "Индекс города Воронеж 39400R"; /* Строка, содержащая индекс с ОШИБКОЙ */
var regular = /\d\d\d\d\d\d/; /* Регулярное выражение - последовательность из шести цифр */
var result = index.search(regular); /* Ищем регулярное выражение в строке */

document.write(result);

</script>

Для наглядности и дополнительной практики в работе с кодом javascript, можно реализовать следующее:

Оптимизировать предыдущий пример и попросить у пользователя при помощи метода prompt ввести почтовый индекс из шести цифр. Потом сделать проверку, используя условие if-else, на предмет правильности ввода требуемой информации. Попробуйте в результате ввести 5 цифр или 5 цифр и букву.

<script type="text/javascript">

var index = prompt("Введите свой почтовый индекс из шести цифр");
var regular = /\d\d\d\d\d\d/; /* Создаем шаблон - Регулярное выражение */
var result = index.search(regular); /* Ищем шаблон в строке */

/* Далее составляем условие для проверки... */
if (result == -1)
{
document.write("Вы неверно ввели индекс - он должен состоять из шести цифр");
}
else
{
document.write("Ваш индекс " + index);
}

</script>

Но этот пример не доработан. Да, в нем нельзя ввести менее 6 цифр в качестве почтового индекса, а больше 6 - можно. Кроме этого вместе с индексом более, чем из шести цифр можно ввести какой-либо текст и javascript не будет исключать и этот вариант. Попробуйте поэкспериментировать...

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

Это будет реализовано в следующем уроке, где мы продолжим знакомство с регулярными выражениями и методом search.

Главная Изучаем JavaScript Метод search - Регулярные выражения - Цифра Регулярные выражения - Начало и Конец строки

Ваши комментарии к уроку:

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

Добавить комментарий:

Ваше Имя:*
Комментарий:*
Ответьте на вопрос: *
Сколько дней в Високосном году?
* - поля обязательные для заполнения.
JavaScript
Частота просмотра уроков
Дизайн сайтов
ПОИСК ПО САЙТУ:

Моё имя Антон. Связаться со мною Вы можете по e-mail: averagev@mail.ru