This article has been localized into Czech by the community.
Úvod
Regulární výrazy (často zkracovány na "regex" nebo "regexp") jsou sekvence znaků, které specifikují vyhledávací vzor. To vám umožňuje hledat řetězce, ať už jednoduše testovat, zda tam jsou, extrahovat je pro použití jinde, nebo provádět operace hledání/nahrazení.
JavaScript má vynikající podporu pro regulární výrazy, ale nejsou jedinečné pro jazyk JavaScript. Ve skutečnosti byly regulární výrazy vynalezeny mnoho let před JavaScriptem a jsou podporovány většinou programovacích jazyků, buď nativně, nebo prostřednictvím doplňkové knihovny.
Definice regulárního výrazu
Většina programovacích jazyků obsahuje objekt, třídu nebo sadu metod pro práci s regulárními výrazy, ale v JavaScriptu jsou přímou součástí specifikace - můžete je psát přímo ve svém kódu pomocí specifické notace, nebo můžete použít objekt RegExp.
Ale nejprve se podívejme, jak by mohl regulární výraz vypadat:
[0-9]+
Toto je velmi jednoduchý regulární výraz, který nám umožňuje hledat číslo. Pokud jej chceme použít v JavaScriptu, můžeme jej definovat takto, použitím doslovné notace pro regulární výrazy v JavaScriptu:
let regex = /[0-9]+/;
Všimněte si speciální notace: Skutečný regulární výraz má před sebou a za sebou lomítko - to umožňuje interpretu JavaScriptu vědět, že definujeme regulární výraz. Jako alternativu jednoduše vytvořte nový objekt pomocí objektu RegExp, takto:
let regex = new RegExp("[0-9]+");
Dosáhnete tím toho samého - ve skutečnosti je doslovná notace jen syntaktické sladidlo, protože ve skutečnosti také vytvoří objekt RegExp. Způsob, jakým to uděláte, je tedy opravdu na vás. Často dávám přednost poslední verzi, protože je to tak jasné, co se děje, ale uvidíte mnoho příkladů používajících doslovnou notaci v kódu JavaScriptu nalezeném online, takže věnujte pozornost i této verzi.
Použití regulárního výrazu
Samozřejmě, jen vytvoření objektu RegExp nás nikam nedostane - musíme použít jednu z užitečných metod. Jednou z nejjednodušších metod je metoda test() - jednoduše vám řekne, zda lze pomocí regulárního výrazu nalézt shodu s řetězcem. Zde je příklad:
let testString = "Hello, I'm 42 years old";
let regex = new RegExp("[0-9]+");
if(regex.test(testString))
alert("String contains a number!");
else
alert("String does NOT contain a number!");
Samozřejmě, můžete udělat mnohem více než jen to, ale pojďme mluvit o všech funkcích regulárních výrazů v JavaScriptu v následujících článcích.
Shrnutí
Pomocí regulárních výrazů (regex) můžete definovat vyhledávací vzor a poté provádět vyhledávání a operace hledání/nahrazování na řetězci. Regulární výrazy jsou téměř jako mini-programovací jazyk a mohou být poměrně složité a extrémně univerzální.
Cílem tohoto tutoriálu není naučit vás o všech aspektech regulárních výrazů, ale ukázat vám, co všechno s nimi můžete v JavaScriptu dokázat. Budou zde příklady regulárních výrazů, aby ilustrovaly různé formy funkcionality, ale pro plné pochopení regulárních výrazů doporučuji najít si online tutoriál o regexech nebo alespoň špehový list.