Kotvy:začátek řetězce ^ a konec $

Stříška ^ a dolar $ znaky mají v regulárním výrazu zvláštní význam. Říká se jim „kotvy“.

Stříška ^ shoduje se na začátku textu a dolar $ – na konci.

Vyzkoušejme například, zda text začíná Mary :

let str1 = "Mary had a little lamb";
alert( /^Mary/.test(str1) ); // true

Vzor ^Mary znamená:„začátek řetězce a pak Mary“.

Podobně můžeme otestovat, zda řetězec končí snow pomocí snow$ :

let str1 = "its fleece was white as snow";
alert( /snow$/.test(str1) ); // true

V těchto konkrétních případech bychom mohli použít řetězcové metody startsWith/endsWith namísto. Regulární výrazy by se měly používat pro složitější testy.

Testování úplné shody

Obě kotvy společně ^...$ se často používají k testování, zda řetězec plně odpovídá vzoru. Například pro kontrolu, zda je uživatelský vstup ve správném formátu.

Pojďme zkontrolovat, zda řetězec je čas v 12:34 formát. To znamená:dvě číslice, pak dvojtečka a pak další dvě číslice.

V jazyce regulárních výrazů je to \d\d:\d\d :

let goodInput = "12:34";
let badInput = "12:345";

let regexp = /^\d\d:\d\d$/;
alert( regexp.test(goodInput) ); // true
alert( regexp.test(badInput) ); // false

Zde je shoda pro \d\d:\d\d musí začínat přesně za začátkem textu ^ a konec $ musí okamžitě následovat.

Celý řetězec musí být přesně v tomto formátu. Pokud se vyskytne nějaká odchylka nebo znak navíc, výsledkem je false .

Kotvy se chovají jinak, pokud je příznak m je přítomen. To uvidíme v dalším článku.

Kotvy mají „nulovou šířku“

Kotvy ^ a $ jsou testy. Mají nulovou šířku.

Jinými slovy, neodpovídají znaku, ale spíše nutí motor regulárních výrazů, aby zkontroloval podmínku (začátek/konec textu).