PočítačeProgramování

Javascript, pravidelné příklady výraz, zkontrolujte regulárních výrazů

Před příchodem hypertextového jazyka, ale spíše, než to začalo být jasné, že bychom neměli jen dívat, ale k tomu, aby za určitých podmínek, na určitém místě, a to za změněných dat ve správném množství, obvyklý vyhledávání a nahrazování funkce organizovaný jakýkoli propracovaný programátor. Mistrovské dílo výtvarné vyhledávání v programovacích jazycích, a databáze vynikal v podobě podmínek pro odběr vzorků, který je vybaven uložené procedury, triggery a dalších prostředků objemný vzorových relační informačních stop. Vzhled regulární výraz k revoluci nevedla, ale to bylo užitečné a pohodlný způsob, jak najít a nahradit informace. Například regulární výrazy JavaScript email výrazně zjednodušit registraci návštěvníků, nenačtou webové stránky odesílání zpráv na neexistující adresy.

Říkat, že JavaScript regulární výraz je mnohem lepší produmannnyh sekvence indexOf () volání v rámci konvenční cyklické a operátory, nelze ale říci, že učinil kód skriptu je kompaktní, ale málo srozumitelné pro nezasvěcené může být jednoznačně.

Objekt RegExp = + šablony motor

Regulární výrazy - je šablona + motor. Prvním z nich je vlastně regulární výraz - objekt JavaScript - za RegExp, druhý - vzor performer, aplikovat ho na trati. Motory, které implementují regulární výrazy pro každý programovací jazyk se liší. I když ne všechny rozdíly jsou značné, je třeba mít na paměti, stejně jako se určitě pečlivě zkontrolovat regulární výraz před jeho provozu.

Zvláštní značení při psaní regulárních výrazů je poměrně snadné použití a poměrně efektivní, ale vyžaduje péči, elegance a trpělivosti od developera. Podle zápisu muset zvyknout na regulární výraz vzorů. To není výstřelek, to je logika mechanismu pro provádění «JavaScript regulární výrazy.“

regulární výraz vzor

Povoleny dvě možnosti:

var expOne = / abc * / i;

var expTwo = RegExp ( "abc *", "i");

Obvykle se používá první metodu. V druhém případě, citace, protože použít znak ‚\‘, musí být unikl podle obecných pravidel.

"Já - vlajka s nápisem„malá a velká písmena“. Můžete také použít praporky G ‚-«Globální hledání‘a‚M‘- vyhledávací multi-linka.

Symbol ‚/‘ k označení běžné použití šablony.

Začátek a konec regulárního výrazu

Dále jen ‚^‘ definuje znak (y), z nichž ke spuštění regulární výraz, a ‚$‘ určuje, který znak (y) musí být na konci. Neměli byste experimentovat s nimi uvnitř výrazu, kde mají jiný význam.

Například,

var eRegExp = new RegExp (cRegExp, 'i');

var cRegRes = '';

var STEST = 'ABCZ';

if (eRegExp.test (STEST)) {

cRegRes + = '- ano';

} Else {

cRegRes + = '- ne';

}

var dTestLine = document.getElementById ( 'scTestLine');

dTestLine.innerHTML = 'Expression /' + cRegExp + '/ pro řádek "' + STEST + '"' + cRegRes.

Prvek ‚scTestLine‘ bude mít za následek (cRegExp proměnná má odpovídající význam):

Exprese / ^ ABCZ $ / pro řetězec "ABCZ" - ano

Pokud odeberete ‚i‘ příznak, výsledek je:

Exprese / ^ ABCZ $ / pro řetězec "ABCZ" - Ne

Obsah regulárního výrazu

Pravidelný výraz je posloupnost znaků, která je předmětem hledání. Exprese / qwerty / hledají pro vstup je tato sekvence:

Exprese / qwerty / pro řetězec "qwerty" - ano

Exprese / qwerty / pro řetězec "123qwerty456" - ano

Změny ‚^‘ jsou výrazy:

Exprese / ^ qwerty / pro řetězec "123qwerty456" - Ne

Exprese / ^ qwerty / pro řetězec "qwerty456" - ano

Podobně, na konec řádku symbolu. Regulární výrazy umožňují konzistenci: například [az], [AZ], [0-9] - všechna písmena abecedy v tomto případě, nebo postavy. Ruští dopisy mohou být také použity, ale měly by věnovat pozornost tomu, kódování řetězce (který je žádáno, který je požadován) a stránek. Často ruská písmena, jakož i speciální znaky, je výhodné nastavit kódy.

Při vytváření regulární výraz může určit volby na přítomnost některých symbolů v jednom místě, se jejich počet uveden následujícím způsobem: ‚*‘ = 0 opakování nebo vícekrát; ‚+‘ = 1 nebo více opakování krát; {1} je stejné, jako '+'; {N} = opakování přesně n-krát; {N,} = N opakování krát nebo více; {N, m} = opakování n na m krát.

Pomocí držáků, můžete určit znakovou sadu možností. Vypadá to takhle. [Abcd] = [ad] = každé čtyři symbol: 'a', 'b', 'c' nebo 'd'. Můžete určit jinak. Jakýkoliv znak jiné než uvedené v sadě: [^ abcd] = jiný než ‚A‘ charakter, ‚b‘, ‚c‘ nebo ‚d‘. '?' To znamená, že v tomto okamžiku je symbolem není možné. '' specifikuje jiný než udává znak nové řádky. To '\ n', '\ r', '\ u2028' nebo '\ u2029'. Výraz '\ s * | \ S *' = '[\ s | \ S] *' se rozumí hledání jakéhokoli charakteru, včetně nové řádky.

Zjednodušená verze regulárních výrazů

Výraz ‚[\ s | \ S] *‘ - vyhledávací prostor, nebo jeho nedostatek, to je vše, co je na trati. V tomto případě se symbol ‚\ S‘ označuje mezeru a ‚\ S‘ - jeho nepřítomnosti.

Podobně můžete použít ‚\ d‘ hledat pro desetinná místa, a ‚\ D‘ najít non-číselný znak. Notace ‚\ f‘, ‚r‘ a ‚\ n‘ odpovídají pro podání, návrat vozíku a posunu řádku.

Karta charakter - '\ t', vertikální - '\ v'. Označení '\ w' vyhledá všechny latinské abecedy znak (písmena, číslice a podtržítko značka) = [A-Za-z0-9_].

Označení "\ W je ekvivalentní [^ A-Za-z0-9_]. To znamená jakýkoliv znak, který není písmeno abecedy, čísla, nebo ‚_‘.

Search znak '\ 0' = aktivní NUL znaky. Vyhledávání '\ xHH' nebo '\ Uhhhh' = Search kód znaku nebo HHHH HH resp. H - hexadecimální číslice.

Doporučenou formulaci a kódování regulárních výrazů

Libovolný regulární výraz je důležité pečlivě testován na různých verzích řádků.

Na základě zkušeností z vytváření regulárních výrazů chyby bude menší, ale přesto by měl vždy mít na paměti, že jejich znalosti pravidel psaní regulárních výrazů nemůže být pravda, zvláště, když se „pravidelné období“ se přenáší z jednoho jazyka do druhého.

Volba mezi classic (přesný údaj) a zjednodušenou verzi regulární výraz, že je lepší dát přednost první. Koneckonců, v klasice je vždy jasně uvedeno, že oba hledali. V případě, že regulární výraz nebo vyhledávací řetězec mít ruská písmena, by měla vést k jediné, které kódují všechny řádky a stránky, na které provozuje najít JavaScriptu kód provádí regulární výraz.

Dojde-li ke zpracování charakter, non-latinské abecedy, to dává smysl, aby zvážila údaj o kódy znaků, nikoli samotných postav.

Při provádění vyhledávacích algoritmů v jazyce JavaScript regulární výraz musí být pečlivě kontrolována. To je zvláště důležité pro kontrolu kódování znaků.

Závorky v regulárním výrazu

Závorky definovat možnosti pro symbol, který musí být nebo nemusí být v určitém místě, a kolo - sekvenčních variant. Ale to je jen obecným pravidlem. Z něj neexistuje žádná výjimka, ale tam je široká škála aplikací.

var cRegExp = "[az] * (png | jpg | gif).";

var eRegExp = new RegExp (cRegExp, 'i');

var cRegRes = '';

var STEST = 'picture.jpg';

if (eRegExp.test (STEST)) {

cRegRes + = '- ano';

} Else {

cRegRes + = '- ne';

}

výsledky:

/[az]*.(png|jpg|gif)/ výraz pro vedení „picture.jpg“ - ano

/^[ad][az]*.(png|jpg|gif)/ výraz pro „picture.jpg“ linie - č

/^[ad][az]*.(png|jpg|gif)/ výraz pro vedení „apicture.jpg“ - ano

/^[ad][az]*.(png|jpg|gif)/ výraz pro „apicture.jg“ linie - č

Je třeba poznamenat, že všechno, potom mohou být přítomny nula krát hvězdička. To znamená, že „pravidelné období“ by mohlo fungovat neočekávaným způsobem nejméně.

Check RegExp - testování e-mail

V pravidelných JavaScript výrazu získané dvě metody, test a exec, a může být použit v linek objektů (String) ve svých metodách (funkce): vyhledávání, Split, nahradit a zápas.

Zkušební metoda již bylo prokázáno, že umožňuje kontrolovat správnost regulární výraz. Metoda Výsledek: true / false.

Podívejme se na následující JavaScript regulární výrazy. Zkontrolujte, zda e-maily z počtu „těžké, ale určitě“:

var eRegExp = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s ' "] +) *) | (." + „)),' ((\ [[0-9] {1,3} \ [0-9] {1,3} \ [0-9] {.. . 1,3} \ [0-9] {1,3}]) | (. ([a-zA-Z \ -0-9] + \) + [a-zA-Z] {2}) ) $ /;

řetězec var STEST ='SlavaChip@sci.by ‚dává pravda, pak je tento řetězec je správná e-mailová adresa. Kontrola byla provedena eRegExp.test (STEST).

Praktické využití: úprava e-mailové

Exec metoda poskytuje výstupní pole, volejte:

var aResult = eRegExp.exec (STEST);

cRegRes = 'v pračce' + aResult.length + 'v pračce';
pro (var i = 0; i cRegRes + = aResult [i] + 'v pračce';
}

To dává následující výsledek:

9
Slava.Chip@sci.by
Slava.Chip
Slava.Chip
.Chip
nedefinovaný
sci.by
nedefinovaný
sci.by
sci.

Jiné metody fungují podobně. Doporučuje se, aby jim vyzkoušet sami. Rozvoj a využití regulárních výrazů, je žádoucí pracovat v praxi, kopírování kód není vždy vhodné zde.

Populární „pravidelné období“

JavaScript regulární výraz uveden do e-mailu nejen existuje mnoho dalších možností snadné. Například /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Nicméně, toto provedení bere v úvahu, že ne všechny provedení záznamu na e-mailovou adresu.

Samozřejmě, je nutné zobrazit zkušenost kolegy, aby analyzovaly, jak jejich navrhla před navrhnout vlastní na JavaScriptu regulárních výrazů. Ale tam jsou některé obtíže. Neměli bychom zapomínat, že JavaScript regulární výrazy (příklady při kopírování) můžete duplikovat základní znaky: ‚\‘, ‚/‘ nebo citace. To povede k chybám, které můžete vyhledávat dlouho.

Je důležité vzít v úvahu obvyklé „lidský rozměr“. Po formálním JavaScript regulární výraz pro telefon, který může být návštěvník (osoba), je dána různými způsoby: 123-45-67, (29) 1234567, 80291234567 nebo 375291234567. A je to všechno stejný počet. Hláskovat více vzorů není vždy přijatelná, a rigidní fixace pravidel pro psaní čísel může vytvářet zbytečné nepohodlí nebo omezení. Možnost / ^ \ d [\ d \ (\) \ -] {4,14} \ d $ / i je vhodný pro většinu případů zkontrolovat svá telefonní čísla.

Chcete-li udělat JavaScript regulární výrazy, pouze číslice kontroly, a to i takový jednoduchý případ vyžaduje vysvětlení. To by mělo být považováno za celé číslo nebo frakční, vědecká notace, nebo normální, kladné nebo záporné číslo. Můžete si také vzít v úvahu existenci symbolu měny, počet číslic za desetinnou čárkou a rozdělení celé části čísla na triády.

Exprese / ^ \ d + $ / i kontrolovat pouze čísla a /^\d+\.\d+$/i výraz umožňuje použití bodu uvést zlomkovou část čísla.

V JavaScriptu kontrolu regulární výrazy mohou být použity k určení formátu pevného vstupních dat, což je důležité zejména při zadávání profily, údaje o pasech a právní adresy t. D.

Zkontrolujte, zda data - jednoduchý ke komplexu

Zvážit další JavaScript regulární výrazy. Příklady k dnešnímu dni, například o počtu telefonních čísel představují volbu mezi tuhostí a pružností. Termín konání - jedním ze základních údajů, které mají být často podávána. Ale kterým se vstup v určitém formátu: „dd-mm-rrrr‚nebo‘d.m.gg‚často vede k nespokojenosti zákazníka. Přechod od vstupního pole z day-to-měsíc, plný klasického HTML podobě, nemůže dojít, když zadáte pouze jednu číslici, a druhý vstup může být obtížné. Například v oblasti v den, kdy byla zavedena 3 a další číslo 2 nenahrazuje první, a je přičítán k ní 32, který, samozřejmě, způsobí nepříjemnosti.

Účinnost a pohodlí regulárních výrazů v podstatě závisí na celkové konstrukce dialogu s návštěvníkem. V jednom případě, uvést datum, kdy je vhodné použít jedno vstupní pole formuláře, v opačném případě je nutné stanovit v různých oblastech pro den, měsíc a rok. Ale pak veškeré dodatečné náklady „kódu“ ke kontrole přestupný rok, počet měsíců, počet dnů v nich.

Vyhledávání a nahrazování, regulární výraz paměť

JavaScript nahradit (regulární výrazy) pomocí metody objektu String, a umožní nám najít hodnotu a okamžitě změnit. To je užitečné pro opravu překlepů, upravovat obsah polí formuláře a pro převod dat z jednoho prezentačního formátu do druhého.

var cRegExp = / ([a-z] +) \ s ([A-Z] +) \ s ([A-Z] +) / i; // Při hledání jsou tři ‚proměnné‘

var STEST = 'Tento článek je dobrý!';
var cRegRes = sTest.replace (cRegExp, "$ 2, $ 3, $ 1");

var dTestLine = document.getElementById ( 'scTestLine');

dTestLine.innerHTML = 'Výraz' + cRegExp + 'pro řetězec "' + STEST + '" na:' + cRegRes;

výsledek:

expresní / ([az] +) \ s ([az] +) \ s ([az] +) / i na řádku "Tento článek je dobrý!" out: tento článek je dobrý, to!

Při provádění každé dvojici závorek ukládá výsledek v ‚proměnná‘ $ n, kde n - počet dvojic konzol ($ 1, $ 2, ...). Na rozdíl od běžných, zde variabilní číslování 1, nikoli 0.

Obecná doporučení

Regulární výraz zjednodušuje kód, ale čas na jejich vypracování často dělá rozdíl. Můžete začít s jednoduchými vzory a pak se spojit do složitějších výrazů. Můžete použít různé online služby pro testování regulárních výrazů nebo speciální místní nástroje.

Nejlepší volbou bude vytvářet vlastní knihovnu regulárních výrazů a vlastní nástroje pro testování nového vývoje. To je nejlepší způsob, jak konsolidovat zkušenosti a naučit se, jak rychle vytvářet spolehlivé a pohodlný design.

Pomocí opakování znaků a řetězců, to znamená, že speciální znaky ‚*‘, ‚+‘ a šle, indikující počet opakování by se mělo řídit zásadami jednoduchosti a účelnosti. Je důležité si uvědomit, že regulární výraz na začátku své práce, a získat výsledek je zcela v moci motoru používaného prohlížeče. Ne všechny jazyky jsou ekvivalentní JavaScript. Každý prohlížeč může přinést své osobní preference při výkladu regulárních výrazů.

Kompatibilita není jen stránky a styly, regulární výrazy, ale také má dělat. Stránka využívá JavaScript, lze považovat za dobře fungující pouze v případě, že úspěšně pracoval na různých prohlížečích.

JavaScript, String a RegExp

Pravou práci na úrovni klienta, který je v prohlížeči návštěvníka v JavaScriptu, to vyžaduje vysoké dovednosti vývojáře. Dost dlouho na to, že máte možnost ladit JavaScript-code prohlížeč vlastních prostředků nebo pomocí rozšíření třetích stran, editory kódu, nezávislých programů.

Nicméně, ne všechny případy, ladicí zvládne a poskytují dobrou podporu pro vývojáře, rychlé detekce chyb, odhalovat nedostatky. Doby, kdy počítač byl zaměřen na výpočty, v dávné minulosti. Nyní, věnovat zvláštní pozornost informování a vedení objekty začaly hrát významnou roli. Počet ocelových strun a jejich skutečná povaha se projeví jen ve správný čas a na správném místě.

Regulární výrazy posílit možnost linek, ale vyžadují sebeúctu. Ladění RegExp ve své práci, a to iv případě, že je možné simulovat, ne příliš zajímavý nápad.

Pochopení struktury a logiky objektu RegExp, což znamená, objekt String, syntaxi a sémantice JavaScript - skutečný bezpečný a spolehlivý kód, stabilní provoz každé stránky a stránky jako celku.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 cs.delachieve.com. Theme powered by WordPress.