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

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

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

Шпаргалка по регулярным выражениям в JavaScript – Начало и Конец строки - Метод search

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

Урок №7 Регулярные выражения - Начало и Конец строки

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

В предыдущем уроке мы начали изучать метод search и регулярные выражения. Сейчас мы продолжим с этим работать и рассмотрим выражения Начала и Конца строки.

Но прежде следует сказать следующее... Регулярные выражения существуют не только в javascript.

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

На этом сайте www.exlab.net можно скачать шпаргалку по регулярным выражениям. Или же скачать архив по ссылке ниже...

Метод search - Регулярное выражение - {n} - ровно n

Метод search - Регулярное выражение - {n} - ровно n

Вернемся к примеру из предыдущего урока, где при помощи регулярного выражения \d, которое обозначает любую цифру от 0 до 9, мы искали последовательность из шести цифр. Для этого пришлось регулярное выражение \d указать шесть раз.

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

<script type="text/javascript">

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

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

</script>

Итак, в этом примере мы оптимизировали javascript-код за счет использования регулярного выражения \d{6}:

  • Где, как Вы помните, \d обозначает цифру от 0 до 9.

  • А {6} обозначает ровно 6 (в фигурных скобках может быть указано любое число).

  • То есть запись \d{6} идентична \d\d\d\d\d\d.

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

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

Давайте подробнее рассмотрим предыдущий пример.

Допустим, пользователь корректно укажет почтовый индекс, то есть подряд введет шесть цифр, но при этом сначала напишет пару слов: «Мой индекс 394000».

Попробуйте это сделать и в результате увидите всю строку: «Мой индекс 394000».

А что если нам нужен только почтовый индекс?

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

Здесь нам поможет регулярное выражение ^, что означает Начало строки.

<script type="text/javascript">

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

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

</script>

Теперь какой-либо текст, расположенный перед почтовым индексом приведет к тому, что в результате мы получим -1, то есть увидим: «Вы неверно ввели индекс - он должен состоять из шести цифр».

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

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

Еще один момент... Доработаем до конца этот пример!!!

Допустим, пользователь снова корректно укажет почтовый индекс, только теперь напишет пару слов после него: «394000 - Мой индекс».

При этом регулярное выражение ^ - Начало строки уже не поможет. Но есть другое $ - символ доллара, что означает Конец строки

<script type="text/javascript">

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

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

</script>

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

Кроме этого! Благодаря тому, что к регулярному выражению \d{6}, то есть к последовательности из 6-ти цифр одновременно добавлены выражения ^ и $ - Начала и Конца строки, теперь также нельзя будет ввести последовательно 7, 8 или более цифр.

Домашнее задание - Регулярные выражения в JavaScript

Домашнее задание - Регулярные выражения в JavaScript

Теперь выполним Домашнее задание по 2-м пройденным урокам. Это «Введение в Регулярные выражения в JavaScript» и текущему уроку, в котором были рассмотрены выражения ^ и $ - Начала и Конца строки.

Домашнее задание звучит так:

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

Результат своей работы функция выводит на экран.

Переменная для передачи в функцию: var forTesting = "8 пингвинов и 9 карасей";

Здесь мы будем работать с функциями и с условием if-else.

<script type="text/javascript">

var forTesting = "8 пингвинов и 9 карасей";

function firstPosition() /* Создаем функцию */
{
var regular = /\d/; /* Регулярное выражение - Цифра */

var result = forTesting.search(regular); /* Ищем цифру в строке */

if (result == 0) /* Если цифра в начале строки, то... */
{
document.write("Строка начинается с Цифры");
}

else /* Иначе... */
{
document.write("В начале строки НЕТ цифры");
}

}

firstPosition(forTesting); /* Вызываем функцию */

</script>

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

Обратите внимание. В решении Выше мы создали функцию firstPosition() без параметра и в теле функции (в инструкции для нее) работали напрямую с переменной forTesting, которую затем указали в качестве параметра функции при ее вызове...

Далее - в решении ниже... Мы создали функцию с параметром Ex - function firstPosition(Ex) и в теле функции работали уже с ним, а затем при вызове функции в качестве параметра указали переменную forTesting, которую javascript подставил в теле функции вместо Ex...

<script type="text/javascript">

var forTesting = "8 пингвинов и 9 карасей";

function firstPosition(Ex) /* Создаем функцию - параметр Ex */
{
var regular = /\d/; /* Регулярное выражение - Цифра */

var result = Ex.search(regular); /* Ищем цифру в строке */

if (result == 0) /* Если цифра в начале строки, то... */
{
document.write("Строка начинается с Цифры");
}

else /* Иначе... */
{
document.write("В начале строки НЕТ цифры");
}

}

firstPosition(forTesting); /* Вызываем функцию */

</script>

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

<script type="text/javascript">

var forTesting = prompt("Введите сначала Цифру потом текст и наоборот");

function firstPosition(Ex) /* Создаем функцию - параметр Ex */
{
var regular = /\d/; /* Регулярное выражение - Цифра */

var result = Ex.search(regular); /* Ищем цифру в строке */

if (result == 0) /* Если цифра в начале строки, то... */
{
document.write("Строка начинается с Цифры");
}

else /* Иначе... */
{
document.write("В начале строки НЕТ цифры");
}

}

firstPosition(forTesting); /* Вызываем функцию */

</script>

Отметим, что, составляя условие if (result == 0), мы говорили о том, что нас интересует именно нулевая позиция цифры в строке.

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

<script type="text/javascript">

var forTesting = prompt("Введите сначала Цифру потом текст и наоборот");

function firstPosition() /* Создаем функцию */
{
var regular = /\d/; /* Регулярное выражение - Цифра */

var result = forTesting.search(regular); /* Ищем цифру в строке */

if (result == -1) /* Если в строке НЕТ Цифры, то... */
{
document.write("Строка начинается НЕ с Цифры");
}

else /* Иначе... */
{
document.write("В начале строки цифра");
}

}

firstPosition(forTesting); /* Вызываем функцию */

</script>

Здесь мы изменили условие: if (result == -1). При этом если сначала ввести цифру, то мы увидим "В начале строки цифра" - т.е. все верно! Но если сначала ввести текст, а потом цифру - мы увидим то же самое "В начале строки цифра".

Дело в том, что запись if (result == -1) говорит о том, что регулярное выражение \d, то есть какая-либо цифра - должна быть в принципе в строке и не важно - в начале ее или нет. Поэтому здесь нужно добавить регулярное выражение ^ - Начало строки. См. пример ниже...

<script type="text/javascript">

var forTesting = prompt("Введите сначала Цифру потом текст и наоборот");

function firstPosition() /* Создаем функцию */
{
var regular = /^\d/; /* Регулярное выражение - Начало строки + Цифра */

var result = forTesting.search(regular); /* Ищем цифру в строке */

if (result == -1) /* Если в начале строки НЕТ Цифры, то... */
{
document.write("Строка начинается НЕ с Цифры");
}

else /* Иначе... */
{
document.write("В начале строки цифра");
}

}

firstPosition(forTesting); /* Вызываем функцию */

</script>

Теперь, если попробовать ввести сначала текст, а потом цифру, то мы увидим "Строка начинается НЕ с Цифры", так как регулярное выражение ^\d говорит нам о том, что цифра должна располагаться именно в начале строки.

Главная Изучаем JavaScript Регулярные выражения - Начало и Конец строки Метод match - Возвращает массив из совпадений

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

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

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

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

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