RačunalaProgramiranje

Javascript, regularni izraz primjeri, provjerite regularnih izraza

Prije pojave hipertekstualnih jezika, sve dok nije postalo jasno da je neophodno ne samo tražiti nego i to pod određenim uvjetima, na određenom mjestu, s promijenjenim podacima, u pravim količinama, uobičajene funkcije pretraživanja i zamjene dogovorene za bilo kakvu sofisticiranu programer. Izrađene su remek-djela pretraživačke umjetnosti u programskim jezicima, a baze podataka rafinirane su u obliku uvjeta uzorkovanja, opremljene pohranjenim postupcima, aktivirajućim i drugim sredstvima za uzimanje uzoraka iz nezgodnih kompozicija relacijskih informacija. Pojava regularnih izraza za revoluciju nije vodila, ali pokazalo se korisnim i prikladnim sredstvom za pretraživanje i zamjenu informacija. Na primjer, uobičajeni izrazi JavaScript e-pošte uvelike pojednostavljuju registraciju posjetitelja, ali ne preuzimaju web mjesto slanja poruka na nepostojeće adrese.

Da reći da je regularni izraz Java znatno bolji od dobro razvijenih indeksa () sekvenci u kadriranju uvjetovanih i cikličkih operatera, to je nemoguće, ali reći da je skriptni kod kompaktan, ali slabo razumljiv nerazvijenim može biti nedvosmislen.

RegExp objekt = predložak + motor

Regularni izrazi su predložak + motor. Prvi je regularni izraz - JavaScript objekt je RegExp, drugi je predložak izvršitelj koji ga primjenjuje na niz. Motori koji provode regularne izraze za svaki programski jezik su različiti. I iako nisu sve razlike značajne, to treba imati na umu, kao i pazite da pažljivo provjerite regularni izraz prije korištenja.

Posebna napomena za pisanje regularnih izraza vrlo je prikladna i vrlo učinkovita, ali zahtijeva pažnju, točnost i strpljenje od programera. Za označavanje uzoraka regularnih izraza potrebno je koristiti. To nije priznanje modi, već je logika provedbe mehanizma "regularnih izraza JavaScripta".

Redoviti uzorak ekspresije

Dvije su opcije dopuštene:

Var expOne = / abc * / i;

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

Obično se koristi prva metoda. U drugom se slučaju koriste navodnici, tako da se koristi znak '\', mora se izbjeći zajedničkim pravilima.

'Ja' je zastava koja označava "registar nije važan". Također možete koristiti zastave 'g' - 'globalno pretraživanje' i 'm' - višerazinski pretraživanje.

Simbol '/' koristi se za označavanje predloška.

Početak i kraj regularnog izraza

Karakter '^' određuje znakove iz kojih počinje regularni izraz, a '$' određuje koji znak (i) bi trebao biti na kraju. Ne eksperimentirajte s njima unutar izraza, tamo imaju drugačije značenje.

Na primjer,

Var eRegExp = novi RegExp (cRegExp, 'i');

Var cRegRes = '';

Var sTest = 'AbcZ';

Ako (eRegExp.test (sTest)) {

CRegRes + = '- Da';

} Ostalo {

CRegRes + = '- Ne';

}

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

DTestLine.innerHTML = 'Izraz /' + cRegExp + '/ za niz "+ sTest +'" + cRegRes.

U elementu 'scTestLine' bit će rezultat (varijabla cRegExp ima odgovarajuću vrijednost):

Izraz / ^ AbcZ $ / za niz "abcz" - Da

Ako uklonite zastavu "i", rezultat će biti:

Izraz / ^ AbcZ $ / za niz "abcz" - br

Regularni sadržaj izražavanja

Regularni izraz je niz znakova koji su predmet pretraživanja. Izraz / qwerty / traži pojavu točno tog slijeda:

Izraz / qwerty / za niz "qwerty" - Da

Izraz / qwerty / za niz "123qwerty456" - Da

Lik "^" mijenja bit izraza:

Izraz / ^ qwerty / za niz "123qwerty456" - br

Izraz / ^ qwerty / za niz "qwerty456" - Da

Slično kao i za krajnji karakter. Regularni izrazi omogućuju sekvence: na primjer, [AZ], [AZ], [0-9] - sve slova latinske abecede u navedenom registru ili znamenkama. Ruska slova također se mogu koristiti, ali treba obratiti pažnju na kodiranje žica (gdje tražiti ono što se traži) i stranicu. Često ruski slova, poput posebnih znakova, preporučuju se kodovima.

Prilikom sastavljanja regularnog izraza možete odrediti opcije prisutnosti određenih simbola na određenom mjestu, a njihov je broj postavljen na sljedeći način: '*' = ponavljanje od 0 ili više puta; '+' = Ponovite 1 ili više puta; {1,} je isti kao '+'; {N} = ponavljanje točno n puta; {N,} = ponavljanje n i više puta; {N, m} = ponavljanje od n do m puta.

Pomoću kvadrata zaglavlja možete navesti varijante znakova iz skupa. Izgleda ovako. [Abcd] = [ad] = bilo koji znak od četiri: 'a', 'b', 'c' ili 'd'. Možete navesti suprotno. Bilo koji znak osim onih navedenih u skupu: [^ abcd] = bilo koji znak osim "a", "b", "c" ili "d". '?' Označava da na ovom mjestu možda nema simbola. ''. Određuje bilo koji znak, osim prekida linije. Ovo je '\ n', '\ r', '\ u2028' ili '\ u2029'. Izraz '\ s * | \ S *' = '[\ s | \ S] *' znači traženje bilo kojeg znaka, uključujući i prekide retka.

Pojednostavljene verzije regularnog izraza

Izraz '[\ s | \ S] *' - traži prostor ili njegov odsutnost, to je sve što je u redu. U ovom slučaju oznaka '\ s' označava prostor, a '\ S' označava odsutnost.

Slično tome, možete upotrijebiti '\ d' za traženje decimalne znamenke, a '\ D' će pronaći ne-numerički znak. Oznake '\ f', 'r' i '\ n' odgovaraju oblikovnom feedu, povratku kola i redoslijedu.

Karakter kartice je '\ t', vertikalni znak je '\ v'. Oznaka '\ w' naći će bilo koji znak latinice (slova, brojevi, podvlaka) = [A-Za-z0-9_].

Oznaka '\ W' jednaka je [^ A-Za-z0-9_]. To znači da svaki znak nije slovo latinice, broj ili znak '_'.

Potražite znak '\ 0' = traži NUL znak. Potražite '\ xHH' ili '\ uHHHH' = traženje znaka s HH ili HHHH kodom. H - heksadecimalna znamenka.

Preporučeni jezik i kodiranje regularnog izraza

Svaki regularni izraz važan je za pažljivo testiranje različitih opcija linije.

S iskustvom stvaranja regularnih izraza, pogreške će biti manje, ali uvijek treba imati na umu da vlastito znanje o pravilima pisanja regularnog izraza ne može odgovarati stvarnosti, pogotovo kada se "redoviti" prenosi s jednog jezika na drugi.

Odabir između klasika (točan indikator) i pojednostavljene verzije regularnog izraza, bolje je odabrati prvi. Uostalom, klasici uvijek jasno pokazuju što se traži. Ako u redovnom izrazu ili u traku za pretraživanje postoje ruska slova, trebali biste rezultiirati jednim kodiranjem svih redaka i stranice na kojoj djeluje JavaScript kod koji izvršava regularni izraz.

Prilikom obrade znakova koji ne pripadaju latiničnom abecedu, smatrat će se da je riječ o određivanju znakovnih kodova, a ne samih znakova.

Prilikom implementacije algoritama za pretraživanje JavaScripta potrebno je pažljivo provjeriti regularni izraz. Posebno je važno kontrolirati kodiranje znakova.

Rodene u regularnim izrazima

Kvadratne zagrade određuju varijante znakova koje moraju biti ili nisu prisutne na određenom mjestu, a okrugle su inačice sekvenci. Ali ovo je samo opće pravilo. Nema iznimaka od njega, ali postoji mnogo različitih primjena.

Var cRegExp = "[a] *. (Png | jpg | gif)";

Var eRegExp = novi RegExp (cRegExp, 'i');

Var cRegRes = '';

Var sTest = 'picture.jpg';

Ako (eRegExp.test (sTest)) {

CRegRes + = '- Da';

} Ostalo {

CRegRes + = '- Ne';

}

rezultati:

Izraz /[az]*.(png|jpg|gif)/ za liniju "picture.jpg" - Da

Izraz [/ i] [ad] [až]]]]]]]]]]]] [

Izraz /^[ad][az]*.(png|jpg|gif)/ za niz "apicture.jpg" - Da

Izraz /^[ad][az]*.(png|jpg|gif)/ za niz "apicture.jg" - Ne

Treba posebno napomenuti da sve, nakon čega postoji zvjezdica, može biti prisutno nula puta. To znači da "redoviti" može raditi na najneočekivanijem način.

Provjera RegExp - testiranje e-pošte

U JavaScriptu, regularni izrazi dobivaju dvije metode, test i exec, a mogu se koristiti u String objektima u njihovim metodama: pretraživati, podijeliti, zamijeniti i podudarati.

Metoda testiranja već je demonstrirana, omogućuju vam da provjerite točnost regularnog izraza. Rezultat metode je istinit / netočan.

Razmotrite sljedeće redovite JavaScript izraze. Provjera e-pošte od broja "teških, ali preciznih":

Var eRegExp = /^(([^<>()\[\]\\ .,;:\s@"]+(\.[^<>()\[\]\\.,;:\s [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {{ 1,3-dihidro- [l, 3] ) $ /;

Za niz var sTest = 'SlavaChip@sci.by' daje istinito, to jest, taj niz je ispravna adresa e-pošte. Provjera je provedena metodom eRegExp.test (sTest).

Praktična upotreba: obrada e-pošte

Exec metoda na izlazu daje niz, nazovite:

Var aResult = eRegExp.exec (sTest);

CRegRes = '
' + aResult.length + '
';
Za (var i = 0; i CRegRes + = aResult [i] + '
';
}

Rezultat je sljedeći:

9
Slava.Chip@sci.by
Slava.Chip
Slava.Chip
.Chip
nedefiniran
sci.by
nedefiniran
sci.by
sci.

Druge metode rade na sličan način. Preporuča se da ih sami provjerite. Razvoj i upotreba regularnih izraza poželjni su za praksu, kopiranje koda ovdje nije uvijek prikladno.

Popularni "regularni"

Gornji JavaScript regularni izraz za e-poštu nije jedini, postoji puno jednostavnih opcija. Na primjer, /^[w-\ .]+@[\w-]+\.[az]{2,3}$/i. Međutim, ova opcija ne uzima u obzir sve opcije za snimanje adrese e-pošte.

Naravno, trebate pregledati iskustvo kolega, analizirati načine koje nude, prije nego što dizajnirate vlastiti regularni izraz na JavaScript. Ali postoje određene poteškoće. Ne zaboravite da regularni izrazi JavaScripta (primjeri prilikom kopiranja) mogu duplicirati bitne znakove: '\', '/' ili navodnike. To će dovesti do pogreške koja se može tražiti dugo vremena.

Važno je uzeti u obzir uobičajeni "ljudski aspekt". Uostalom, formalni JavaScript regularni izraz za telefon koji može biti posjetitelj (osoba) može se naznačiti na različite načine: 123-45-67, (29) 1234567, 80291234567 ili +375291234567. I to je sve isti broj. Varijanta pisanja više predložaka nije uvijek prihvatljiva, a kruto fiksiranje pravila za pisanje broja može stvoriti nepotrebne neugodnosti ili ograničenja. Varijanta / ^ \ d [\ d \ (\) \ -] {4,14} \ d $ / i pogodna je za većinu slučajeva telefonske verifikacije.

Ako želite sastaviti regularne izraze JavaScripta, samo provjeravanje znamenki, čak i takav jednostavan slučaj zahtijeva pojašnjenje. On mora uzeti u obzir cjelobrojni ili djelomični, eksponencijalni zapis ili obični, pozitivni broj ili negativni broj. Također možete uzeti u obzir prisutnost simbol valute, broj znamenki nakon decimalne točke i podjelu cijelog dijela broja u trojke.

Izraz / ^ \ d + $ / i samo će provjeriti znamenke, a izraz / ^ \ d + \. \ D + $ / i omogućuje vam da upotrijebite period kako biste naznačili djelomični dio broja.

U JavaScript-u, provjeravanje regularnih izraza može se koristiti za određivanje formata ulaznih podataka, što je važno, posebno prilikom unosa upitnika, podataka o putovnici, pravnih adresa itd.

Provjera datuma samo je komplicirana

Razmotrite pravilne regularne izraze Java Primjeri datuma, poput broja ili telefonskog broja, predstavljaju izbor između krutosti i fleksibilnosti. Datum događaja jedan je od bitnih podataka koji se često unose. No, popravljanje unosa u određenom formatu: 'dd-mm-yyyy' ili 'dm.yy' često dovodi do nezadovoljstva kupaca. Prijelaz s polja za unos u dan, a koji se izvodi u klasičnom obliku HTML-a, ne može se izvršiti kada se unese samo jedna znamenka, a unosom drugog može uzrokovati poteškoće. Na primjer, u polju dana 3 već je unesena, a sljedeća znamenka 2 ne zamjenjuje prvu, i dodjeljuje joj se 32, što će, naravno, uzrokovati neugodnosti.

Učinkovitost i praktičnost regularnih izraza bitno ovise o cjelokupnoj konstrukciji dijaloga s posjetiteljem. U jednom slučaju, poželjno je upotrijebiti polje unosa za upisivanje datuma, au drugom slučaju potrebno je osigurati različita polja za dan, mjesec i godinu. No, tada će biti dodatnih "troškova kodova" za provjeru skokova godine, broj mjeseci, broj dana u njima.

Pretražujte zamjenom, sjećanjem na regularni izraz

Zamijenite JavaScript (regularni izrazi) koristite metodu String objekta i omogućuju vam da pronađete vrijednost i odmah ga promijenite. To je korisno za ispravljanje ulaznih pogrešaka, uređivanje sadržaja polja obrasca i za pretvaranje podataka iz jednog formata prezentacije u drugi.

Var cRegExp = / ([a-я] +) \ s ([a-я] +) \ s ([a-я] +) / i; // u potrazi su stvorene tri "varijable"

Var sTest = 'ovaj je članak dobar!';
Var cRegRes = sTest.replace (cRegExp, "$ 2, $ 3, $ 1");

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

DTestLine.innerHTML = 'Izraz' + cRegExp + 'za niz "+ sTest +" bit će:' + cRegRes;

rezultat:

Izraz / ([a-π] +) s ([a-π] +) s [[a-π] +) za redak "ovaj je članak dobar!" Get: članak, dobar, ovaj!

Kada se izvrši, svaki par zagrada pohranjuje rezultat u 'varijable' $ n, gdje je n broj parova zagrada ($ 1, $ 2, ...). Za razliku od opće prihvaćenog, ovdje se numeriranje varijabli provodi s 1, a ne sa 0.

Opće preporuke

Redovni izraz pojednostavljuje kod, ali vrijeme za njegovo razvijanje često je važno. Možete početi raditi s jednostavnim konstruktima, a zatim ih kombinirati u složenije izraze. Možete koristiti različite online usluge za testiranje regularnih izraza ili posebnih lokalnih alata.

Najbolja opcija je stvoriti vlastitu knjižnicu za regularne izraze i svoj alat za testiranje novih zbivanja. Ovo je najbolji način za učvršćivanje iskustva i naučiti kako brzo stvoriti pouzdane i udobne dizajne.

Korištenje ponavljanja znakova i redaka, tj. Posebnih znakova '*', '+' i braces koje označavaju broj ponavljanja, treba voditi principima jednostavnosti i svrhovitosti. Važno je shvatiti da je regularni izraz od početka djelovanja i do postizanja rezultata u potpunosti u snazi motora preglednika koji se koristi. Nisu svi jezici JavaScript jednaki. Svaki preglednik može donijeti vlastite osobne preferencije u tumačenju regularnih izraza.

Kompatibilnost se odnosi ne samo na stranice i stilove, već i na redovite izraze. Stranica s JavaScriptom može se smatrati debugiranom samo kada je uspješno radila na različitim preglednicima.

JavaScript, String i RegExp

Pravi posao na razini klijenta, to jest, u posjetiteljevom pregledniku na JavaScript jeziku, zahtijeva visoku kvalifikaciju od programera. Prošlo je dosta vremena od mogućnosti ispravljanja JavaScript koda vlastitim alatom preglednika ili uz pomoć proširenja trećih strana, urednika koda i neovisnih programa.

Međutim, nije sve slučajeve, debugger može nositi i pružaju dobru potporu developer, brzog otkrivanja pogrešaka, otkrivanje uskih grla. Vremena kada je računalo je usmjerena na izračunima, u dalekoj prošlosti. Sada, obratite posebnu pozornost da su informacije i linija predmeti dolaze igrati značajnu ulogu. Broj čelika žice, a njihova prava priroda se očituje samo u pravo vrijeme i na pravom mjestu.

Regularni izrazi pojačavaju mogućnost linija, ali zahtijevaju samo poštovanje. Debug RegExp u svom radu, čak i ako je moguće simulirati, ne previše zanimljivu ideju.

Razumijevanje strukture i logiku reg objekta, odnosno objekta String, sintaksu i semantiku JavaScript - prava i siguran kod, stabilan rad svake stranice i stranice u cjelini.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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