JavaScript

Regulární výraz Javascript

Regulární výraz Javascript
Mnoho programátorů je obeznámeno s představou, že regulární výraz je užitečný, ale podceňovaný koncept. Neví však příliš dobře, jak efektivně používat regulární výrazy. Regulární výrazy se používají nejen v jazyce Javascript, ale téměř ve všech ostatních programovacích jazycích. V tomto článku se krok za krokem dozvíte o regulárních výrazech. Programátorům na jakékoli úrovni by mělo být snadné porozumět pojmům obsaženým v tomto článku.

A Regulární výraz je objekt, ve kterém jsou dány vzory, aby odpovídaly požadovanému řetězci.

Syntax

Syntaxe regulárního výrazu je velmi jednoduchá a lze ji napsat následovně:

/ vzor / vlajky

A vzor je řetězec, ve kterém zadáte vzor, ​​který odpovídá jinému řetězci.
Vlajky jsou volitelné atributy, které slouží různým účelům. Například vlajka „g“ mimo jiné znamená „globální“.

Rozsah regulárních výrazů je velmi široký. Ukážeme vám základní, které jsou pro programování nejpotřebnější, pomocí podrobného vysvětlení a několika příkladů z reálného života.

Existuje mnoho metod, ve kterých možná budete muset použít regulární výrazy, například v metodách Javascript's search (), replace (), match () a split (). Začneme jednoduchým prohledáváním řetězců bez použití regulárního výrazu a později vám ukážeme, jak provést stejné hledání pomocí regulárních výrazů.

Příklady

Nejprve předpokládáme řetězec:

let str = "Linuxhint je skvělý. linuxhint funguje skvěle a 100%."

Opakovali jsme stejné slovo „skvělý" a "linuxhint“Ve frázi. Účel tohoto podivného řetězce bude zřejmý za chvíli.

V pořádku! Nyní jednoduše napíšeme metodu vyhledávacího řetězce Javascript, abychom vyhledali výraz „práce“

str.hledat („práce“);


Jak vidíte, zobrazuje index, odkud daná dílčí „práce“ začala. Nyní půjdeme dál a zkusíme udělat totéž se syntaxí regexu.

Krok 1: Vyhledejte a vyměňte podřetězec

Shodný řetězec můžete vyhledat pomocí regulárního výrazu jednoduchým umístěním podřetězce mezi dvě lomítka ve výrazu.

str.hledat (/ pracovat /);


Jak vidíte, poskytlo nám také stejný výstup.

V pořádku! Nyní uvidíme, co můžeme dělat s regulárním výrazem. Zkusme nahradit slovo „skvělý„S, řekněme,“skvělý„Pomocí metody replace ().

str.nahradit („skvělý“, „úžasný“);


Zde vidíte problém: první výskyt „skvělý“Byl nahrazen, ale druhý nikoli.

V prvním kroku jste se jednoduše naučili, jak hledat řetězec pomocí regulárního výrazu. Nyní přejdeme k dalšímu kroku a seznámíme se s konceptem vlajek.

Krok 2: Příznaky

V tomto kroku se dozvíte více o konceptu a účelu příznaků v regulárních výrazech. K vysvětlení této myšlenky použijeme metodu nahrazení Javascriptem.

Pokud chcete nahradit všechny výskyty „skvělý,„Regulární výraz můžete použít s 'G„vlajka, což je zkratka pro globální.

str.nahradit (/ great / g, "awesome");


Perfektní, všechny výskyty „velkého“ jsou nyní změněny. Můžete se však setkat s problémem, pokud se pokusíte změnit všechny výskyty „linuxhint“ na „náš web“ pomocí stejné techniky.

Nejprve se o to pokusíme, pak uvidíme, jak můžeme tento problém vyřešit.

str.replace (/ linuxhint / g, "náš web");


Ačkoli jsme globálnímu příznaku poskytli regulární výraz, první výskyt se nezmění. Je to z důvodu rozlišování malých a velkých písmen. Budeme tedy muset poskytnout příznak necitlivosti na velká a malá písmena “i,' v tomto případě. Můžete to udělat jednoduše přidáním 'i‚vlajka spolu s 'G'vlajka.

str.replace (/ linuxhint / gi, "náš web");


Skvělý. Jak vidíte, všechny výskyty výrazu „linuxhint„Byly změněny na termín„naše webové stránky,„Bez ohledu na velikost písmen.

Podobně můžete použít regulární výrazy ve funkci Javascript split ().

str.split (/ linuxhint / gi);


V pořádku! Funkce fungovala dobře. Metoda split () vrátila řadu podřetězců na základě výrazu „linuxhint“. Pokud však chcete do pole podřetězce zahrnout také oddělovače, budete si muset hrát se vzory.

V tomto kroku jsme se tedy dozvěděli o vlajkách a o tom, jak nám pomáhají. K dispozici je více příznaků. Například „m“ je pro víceřádkové párování, „s“ je pro tečku vše atd. Nyní přejdeme k konceptu vzorů a naučíme se, jak tyto položky používat.

Krok 3: Vzory

V tomto kroku se naučíte, jak využít vzory a související možnosti.
Chcete-li do pole podřetězce zahrnout oddělovače, jednoduše přidejte závorky kolem vzoru, jak je vidět na následujícím obrázku:

str.split (/ (linuxhint) / gi);


Perfektní! Jak vidíte, oddělovače jsou také zahrnuty v poli podřetězců.

Chcete-li rozdělit základnu dvou oddělovačů, můžete zadat více podřetězců v regulárním výrazu pomocí NEBO „|“ operátor.

str.split (/ linuxhint | skvělé / gi);


Dobře! Operátor pracoval skvěle, protože očekáváme jeho rozdělení.

Obrácené lomítko

Nyní rozdělit mezi základnu mezery „„ nebo tečku “.”Znamená přidat speciální znaky do regulárního výrazu, přidat zpětné lomítko„ \ “před všechny speciální znaky.

str.rozdělit (/ \ | \./ gi);


Dobře, zatím, tak dobře. Řekněme například, že chcete změnit tečky na čárky v následujícím výrazu:

str.nahradit(/\./ g, ",");


Fungovalo to!

Zpětná lomítka se také používají k jinému účelu. Chcete-li vyhledat jakékoli slovo, číslici nebo mezeru, můžete použít \ w, \ d a \ s. Například k nahrazení mezer pomlčkami se používá následující výraz:

str.nahradit (/ \ s / g, "-");


Skvělý! Nyní opravdu vidíte potenciál v regulárních výrazech.

Hranaté závorky [ ]

Pokud chcete nahradit více znaků v řetězci, můžete všechny zadat do jedné hranaté závorky a budou nahrazeny daným podřetězcem. Například pokud chcete nahradit tři písmena v řetězci a nechcete vložit hodně NEBO „|“ operátory v regulárním výrazu, můžete použít syntaxi hranatých závorek, ve které můžete zadat více písmen, například takto:

str.nahradit (/ [nia] / g, "u");


Můžete dokonce zadat řadu písmen, například takto:

str.nahradit (/ [g-l] / g, „u“);


Nebo řada čísel:

str.nahradit (/ [0-5] / g, "9");


A pokud chcete vyloučit zadané znaky v hranatých závorkách, můžete použít stříška, například takto:

str.nahradit (/ [^ g-l] / g, "t");


To se hodí při získávání dat od uživatelů a testování a ověřování těchto dat, zejména při ověřování e-mailů, telefonů nebo dat.

Závěr

Tento článek právě poškrábal povrch regulárního výrazu Javascript. Pokrývá koncepty pouze od začátečníka po střední úroveň. O regulárním výrazu se toho můžete naučit mnohem víc a pomocí tohoto výrazu můžete dělat spoustu věcí, které vás možná ani nenapadly. Chcete-li se dál učit, pracovat a získávat další zkušenosti s Javascriptem, podívejte se na další články na toto téma na linuxhint.com.

WinMouse vám umožňuje přizpůsobit a vylepšit pohyb ukazatele myši na PC s Windows
Chcete-li vylepšit výchozí funkce ukazatele myši, použijte freeware WinMouse. Přidává další funkce, které vám pomohou vytěžit ze své skromné ​​myši ma...
V systému Windows 10 nefunguje levé tlačítko myši
Pokud používáte speciální myš s notebookem nebo stolním počítačem, ale levé tlačítko myši nefunguje ve Windows 10/8/7 z nějakého důvodu uvádíme několi...
Kurzor při psaní v systému Windows 10 skáče nebo se pohybuje náhodně
Pokud zjistíte, že kurzor myši skáče nebo se pohybuje sám, automaticky, náhodně při psaní v notebooku nebo počítači se systémem Windows, pak vám někte...