Регулярні вирази початку і кінця рядка в javascript - метод search

У попередньому уроці ми почали вивчати метод search і регулярні вирази. Зараз ми продовжимо із цим працювати і розглянемо вираження Почала і Кінця рядки.

Якщо говорити строго, то Регулярні вирази - це спеціальна мова для опису шаблонів рядків. Це інструмент для пошуку рядків, перевірки їх на відповідність якому-небудь шаблоном та іншої подібної роботи. Реалізація цього інструменту різниться в різних мовах програмування. хоч і не сильно.

На цьому сайті www.exlab.net можна скачати шпаргалку за регулярними виразами. Або ж завантажити архів по посиланню нижче.

Метод search - Регулярне вираз - - рівно n

Регулярні вирази початку і кінця рядка в javascript - метод search

Повернемося до прикладу з попереднього уроку. де за допомогою регулярного виразу \ d. яке позначає будь-яку цифру від 0 до 9. ми шукали послідовність з шести цифр. Для цього довелося регулярний вираз \ d вказати шість разів.

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

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

Метод search - Регулярний вираз

А позначає рівно 6 (в фігурних дужках може бути зазначено будь-яке число).
  • Метод search - Регулярний вираз - ^ - Початок рядка

    Регулярні вирази початку і кінця рядка в javascript - метод search

    Давайте докладніше розглянемо попередній приклад.

    Припустимо, користувач коректно вкаже поштовий індекс, тобто поспіль введе шість цифр, але при цьому спочатку напише пару слів: «Мій індекс 394000».

    Спробуйте це зробити і в результаті побачите всю рядок: «Мій індекс 394000».

    А що якщо нам потрібен тільки поштовий індекс.

    Знову звернімося до шпаргалки для регулярних виразів.

    Тут нам допоможе регулярний вираз ^. що означає Початок рядка.

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

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

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

    Метод search - Регулярний вираз - $ - Кінець рядка

    Регулярні вирази початку і кінця рядка в javascript - метод search

    Ще один момент. Доопрацюємо до кінця цей приклад.

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

    При цьому регулярний вираз ^ - Початок рядка вже не допоможе. Але є інше $ - символ долара, що означає кінець рядка

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

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

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

    Крім цього! Завдяки тому, що до регулярного виразу \ d. тобто до послідовності з 6-ти цифр одночасно додані вирази ^ і $ - Почала і Кінця рядки, тепер також можна буде ввести послідовно 7, 8 або більше цифр.

    Регулярні вирази початку і кінця рядка в javascript - метод search

    Домашнє завдання звучить так:

    Написати функцію, яка отримує в якості параметра змінну містить рядок і за допомогою регулярного виразу перевіряє, чи починається вміст цієї змінної з цифри чи ні.

    Результат своєї роботи функція виводить на екран.

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

    Тут ми будемо працювати з функціями і з умовою if-else.

    var forTesting = "8 пінгвінів і 9 карасів";

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

    var result = forTesting. search (regular); / * Шукаємо цифру в рядку * /

    if (result == 0) / * Якщо цифра на початку рядка, то. * /
    document. write ( "Рядок починається з Цифри");
    >

    else / * Інакше. * /
    document. write ( "На початку рядки НІ цифри");
    >

    firstPosition (forTesting); / * Викликаємо функцію * /

    Зверніть увагу. У рішенні Вище ми створили функцію firstPosition () без параметра і в тілі функції (в інструкції для неї) працювали безпосередньо зі змінною forTesting. яку потім вказали в якості параметра функції при її виклику.

    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); / * Викликаємо функцію * /

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

    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); / * Викликаємо функцію * /

    Відзначимо, що, складаючи умова if (result == 0). ми казали про те, що нас цікавить саме нульова позиція цифри в рядку.

    Далі розглянемо трохи інший варіант вирішення цього завдання, при якому інакше складається умова.

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

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

    var result = forTesting. search (regular); / * Шукаємо цифру в рядку * /

    if (result == -1) / * Якщо в рядку НІ Цифри, то. * /
    document. write ( "Рядок починається НЕ з Цифри");
    >

    else / * Інакше. * /
    document. write ( "На початку рядка цифра");
    >

    firstPosition (forTesting); / * Викликаємо функцію * /

    Тут ми змінили умова: if (result == -1). При цьому якщо спочатку ввести цифру, то ми побачимо "На початку рядка цифра" - тобто все вірно! Але якщо спочатку ввести текст, а потім цифру - ми побачимо те ж саме "На початку рядка цифра".

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

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

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

    var result = forTesting. search (regular); / * Шукаємо цифру в рядку * /

    if (result == -1) / * Якщо на початку рядка НІ Цифри, то. * /
    document. write ( "Рядок починається НЕ з Цифри");
    >

    else / * Інакше. * /
    document. write ( "На початку рядка цифра");
    >

    firstPosition (forTesting); / * Викликаємо функцію * /

    Тепер, якщо спробувати ввести спочатку текст, а потім цифру, то ми побачимо "Рядок починається НЕ з Цифри". так як регулярний вираз ^ \ d говорить нам про те, що цифра повинна розташовуватися саме на початку рядка.

    Схожі статті