RačunalaProgramiranje

Javascript, regularni izraz primjere, provjerite Regular Expression

Pre pojave hiperteksta jezika, već, dok je postalo jasno da ne bi trebalo da izgledaju, ali da bi to pod određenim uslovima, u određenom mjestu, pod promijenjenim podatke u pravom količinama, uobičajeno pretraživanje i zamijeniti funkcije u organizaciji sofisticiranog programer. Stvoriti remek-djela umjetnosti pretraživanje u programskim jezicima, a baza podataka briljirao u obliku uvjeta uzorkovanja, opremljen pohranjene procedure, okidače i drugih sredstava kabastog uzorka relacijski informacije tragove. Pojava regularni izraz za revoluciju nije dovelo, ali to je bio koristan i praktičan način da pronađete i zamijeniti informacije. Na primjer, regularni izrazi JavaScript e-mail znatno pojednostaviti registraciju posjetitelja, ne učita web slanje poruka nepostojeće adrese.

Kada se kaže da JavaScript regularni izraz je mnogo bolji produmannnyh sekvence indexOf () poziva u okviru konvencionalne ciklične i operatora, ne može a da ne kažem da je napravio kod skripte je kompaktan, ali malo razumljiv neupućene, mogu biti nedvosmisleno.

Objekat RegExp = + template engine

Regularnih izraza - je predložak + motora. Prvi je zapravo regularni izraz - JavaScript objekat - RegExp, drugi - ovaj uzorak izvođač, nanesite ga na liniju. Motora koji implementiraju regularnih izraza za svaki programski jezik su različiti. I iako ne sve razlike su značajne, treba imati na umu, kao i budite sigurni da pažljivo provjerite regularni izraz prije njegovog rada.

Poseban notacija prilikom pisanja regularnih izraza je vrlo jednostavan za korištenje i vrlo efikasan, ali je potrebna njega, urednost i strpljenje od programera. Notnim zapisom obrasce regularni izraz je potrebno da se navikne na. To nije hir, to je logika mehanizma za provedbu «JavaScript regularnih izraza."

regularni izraz obrazac

Dozvoljeno dvije opcije:

var expOne = / abc * / i;

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

Obično se koristi prvi način. U drugom slučaju, citati, jer da koristite karakter '\', on mora biti pobjegao opštim pravilima.

'I' - zastava naznakom "case sensitive". Također možete koristiti zastave 'g' - «Global Search" i "m" - potraga multi-liniju.

Simbol '/' da ukaže zajednički koristiti predložak.

Početku i na kraju regularnog izraza

Je '^' definira karakter (e) od kojih za početak regularni izraz, a '$' određuje koji znak (e) mora biti na kraju. Ne bi trebalo da eksperimentirati s njima unutar izražavanja, gdje imaju drugačije značenje.

Na primjer,

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

var cRegRes = '';

var sTest = 'AbcZ';

if (eRegExp.test (sTest)) {

cRegRes + = '- Da';

} Else {

cRegRes + = '- Ne';

}

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

dTestLine.innerHTML = 'Izraz /' + cRegExp + '/ za redom "' + sTest +" "+ cRegRes.

Je 'scTestLine' element će rezultirati (cRegExp varijabla ima odgovarajuće značenje):

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

Ako uklonite 'i' zastavu, rezultat je:

izraz / ^ AbcZ $ / za niz "abcz" - Ne

Sadržaj regularni izraz

Regularni izraz je niz likova, koji je predmet pretrage. Izraz / qwerty / U potrazi za unos ovaj niz:

izraz / qwerty / za gudački "qwerty" - Da

izraz / qwerty / za gudački "123qwerty456" - Da

Promjene '^' su izrazi:

izraz / ^ qwerty / za gudački "123qwerty456" - Ne

izraz / ^ qwerty / za gudački "qwerty456" - Da

Isto tako, za kraj simbol linije. Regularni izrazi omogućiti konzistentnost: na primjer, [AZ], [AZ], [0-9] - sva slova abecede u ovom slučaju ili brojke. Ruska slova također se može koristiti, ali treba obratiti pažnju na kodiranje nizova (koju se traži da se traži) i stranice. Često ruska slova, kao i posebne znakove, poželjno je postaviti kodova.

Kada formiranja regularni izraz može navesti opcije za prisustvo određenih simbola na određenoj lokaciji, s obzirom kako slijedi njihov broj: '*' = 0 ponavljanja ili više puta; '+' = 1 ili više ponavljanja puta; {1} je isti, kao '+'; {N} = ponavljanje točno n puta; {N,} = n ponavljanja ili više puta; {N, m} = ponavljanja n do m puta.

Koristeći zagradama, možete odrediti karakter set opcija. To izgleda ovako. [Abcd] = [oglas] = svake četiri simbol: 'A', 'B', 'c' ili 'D'. Možete odrediti drugačije. Bilo koji, osim onih koji su navedeni u skup znakova: [^ abcd] = bilo koji znak osim 'A', 'B', 'c' ili 'D'. '?' To ukazuje na to da u ovom trenutku simbol ne može biti. ''. navodi ništa osim što ukazuje na znak za novi red. Ovaj '\ n', '\ r', '\ u2028' ili '\ u2029'. Izraz '\ s * | \ S *' = '[\ s | \ S] * "znači potragu za bilo koji znak, uključujući i nove linije.

Pojednostavljene verzije regularnih izraza

Izraz '[\ s | \ S] * - pretraživanje prostora, ili nedostatak iste, to je sve što je na liniji. U ovom slučaju, simbol '\ S' označava prostor, a '\ S' - njegovom odsustvu.

Isto tako, možete koristiti '\ d' za traženje decimala, i '\ D' naći ne-numerički znak. Notacija '\ f', 'r' i '\ n' odgovaraju formi-feed, carriage return i line-feed.

Kartica karakter - '\ t', vertikalno - '\ v'. Oznakom '\ w' pronalazi bilo latinicom znakova (slova, brojeva, i podvlaku oznaka) = [A-Za-z0-9_].

Oznakom '\ W' je ekvivalentno [^ A-Za-z0-9_]. To znači bilo koji znak koji nije slovo abecede, broj ili '_'.

Pretraživanje znak '\ 0' = pretraživanje NSK znakova. Traži '\ xhh' ili '\ Uhhhh' = pretrage kod znaka ili hhhh HH respektivno. H - heksadecimalni broj.

Preporučeni tekst i kodiranje regularnih izraza

Bilo koji regularni izraz je važno da pažljivo testiran na različite verzije redova.

Sa iskustvom stvaranja redovne greške izraz će biti manja, ali ipak uvijek treba imati na umu da svoje znanje o pravilima pisanja regularnih izraza ne može biti istina, pogotovo kada je "regularnom dijelu sezone" je prešao iz jednog jezika u drugi.

Izbor između klasičnog (tačan pokazatelj) i pojednostavljena verzija regularni izraz, bolje je da se preferiraju prvi. Na kraju krajeva, u klasici uvijek jasno ukazuju da su obje tražio. Ako je regularni izraz ili pretraživanje string imaju ruska slova, treba da dovede do jednog kodiranja sve linije i stranice na kojoj djeluje pronaći JavaScript-kod vrši regularni izraz.

Kada je obrada karakter, ne latinicom, ima smisla razmotriti naznaku šifre, a ne sami likovi.

Prilikom realizacije algoritama za pretraživanje JavaScript regularnih izraza treba pažljivo provjeriti. To je posebno važno za kontrolu kodiranje znakova.

Zagrada u regularni izraz

Zagradama definirati opcije za simbol, koji mora biti ili ne biti na određenom mjestu, i okrugli - sekvenca varijante. Ali ovo je samo generalno pravilo. Iz njega ne postoji izuzetak, ali postoji širok spektar aplikacija.

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

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

var cRegRes = '';

var sTest = 'picture.jpg';

if (eRegExp.test (sTest)) {

cRegRes + = '- Da';

} Else {

cRegRes + = '- Ne';

}

rezultati:

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

/^[ad][az]*.(png|jpg|gif)/ izraz za "picture.jpg" linija - Ne

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

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

Treba napomenuti da su svi, onda zvjezdicu može biti prisutan nula puta. To znači da je "regularnom dijelu sezone" može raditi na neočekivane načine najmanje.

Check RegExp - testiranje e-mail

Na redovnim JavaScript izraz dobila dvije metode, ispitivanje i Exec, i može se koristiti u redovima objektima (String) u njihove metode (funkcije): pretraživanje, split, zamijeniti i meč.

metoda ispitivanja je već pokazao, što vam omogućuje da provjerite ispravnost regularni izraz. Način Rezultat: istina / laž.

Razmotrite sljedeće JavaScript regularnih izraza. Provjerite e-mail iz broja "teško, ali sigurno":

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}) ) $ /;

string var sTest ='SlavaChip@sci.by 'daje istina, onda je to string je ispravnu e-mail adresu. Revizija je sproveo eRegExp.test (sTest).

Praktična upotreba: liječenje E-mail adresa

Exec metoda daje niz izlaz, nazovite:

var aResult = eRegExp.exec (sTest);

cRegRes = '
' + aResult.length + '
';
za (var i = 0; i cRegRes + = aResult [i] + "
';
}

To daje sljedeće rezultat:

9
Slava.Chip@sci.by
Slava.Chip
Slava.Chip
.Chip
nedefinisan
sci.by
nedefinisan
sci.by
sci.

Druge metode rade na sličan način. Preporučuje se da ih provjerite sami. Razvoj i korištenje regularnih izraza, poželjno je da se radi u praksi, kod kopiranje nije uvijek preporučljivo ovdje.

Popularni "regularnom dijelu sezone"

JavaScript regularni izraz data na e-mail ne samo postoje mnogi lakše opcija. Na primjer, /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Međutim, to utjelovljenje uzima u obzir ne sve oličenje e-mail adresu rekord.

Naravno, morate vidite iskustvo kolega, da se analizira kako njihov predloženi ranije da osmisle vlastite na JavaScript regularnih izraza. Ali postoje neke poteškoće. Ne treba zaboraviti da je JavaScript regularnih izraza (primjeri kada kopirate) može duplirati bitne znakove: '\', '/' ili citati. To će dovesti do pogreške, koje možete pretraživati dugo.

Važno je uzeti u obzir uobičajene "ljudsku dimenziju." Nakon formalnog JavaScript regularni izraz za telefon, koja može biti posjetitelj (osoba), što je s obzirom na različite načine: 123-45-67, (29) 1234567, 80291234567 ili 375291234567. I sve je to isti broj. Spelling više obrazaca nije uvijek prihvatljivo, i krute fiksacija pravila za pisanje brojeva može stvoriti nepotrebne neudobnosti ili ograničenja. Opcija / ^ \ d [\ d \ (\) \ -] {4,14} \ D $ / i pogodna je za većinu slučajeva provjeriti svoj broj telefona.

Ako želite da napravite JavaScript regularnih izraza, samo cifre provjere, čak i tako jednostavan slučaj zahtijeva pojašnjenje. Treba uzeti u obzir cijeli broj ili frakcijski, naučna notacija, ili normalan, pozitivan ili negativan broj. Također možete uzeti u obzir postojanje simbol valute, broj znamenki nakon decimalne točke i podjela cijelog dijela broj na trijade.

Izraz / ^ \ d + $ / i provjeriti samo brojke i /^\d+\.\d+$/i izraz omogućuje korištenje tačke da ukaže razlomljeni dio broja.

U JavaScript provjeru regularnih izraza može se koristiti za označavanje format hard ulaznih podataka, što je važno, posebno prilikom ulaska profila, pasoš podataka i pravne adrese t. D.

Provjerite datumi - jednostavno kompleksa

Razmislite o još JavaScript regularnih izraza. Primjeri do danas, kao i za broj telefona brojevi predstavljaju izbor između krutosti i fleksibilnosti. Datum održavanja - jedan od bitnih podataka, koji često moraju davati. Ali fiksiranje ulaz u određenom formatu: "dd-mm-gggg" ili "d.m.gg 'često dovodi do nezadovoljstva kupaca. Prelazak sa polje za unos dana u mjesec, pun klasičnih HTML-obliku, ne može se održati kada uđete samo jednu cifru, a drugi ulaz može biti teško. Na primjer, u polju dana kada je uveden 3, a sljedeći broj 2 ne zamjenjuje prvi, a pripisuje joj 32, što je, naravno, će izazvati neugodnosti.

Efikasnost i praktičnost regularnih izraza u suštini zavisi od opšteg izgradnji dijaloga sa posetioca. U jednom slučaju, da ukaže na datum preporučljivo je koristiti jedno polje za unos obrasca, u drugom slučaju potrebno je osigurati za različite polja za dan, mjesec i godinu. Ali onda sve dodatne "troškove kod" za provjeru prestupna godina, broj mjeseci, broj dana u njima.

Pretraživanje i zamijeniti, regularni izraz memorije

JavaScript zamijeniti (regularne izraze) metodom String objekta, i dozvolite nam da je vrijednost i promijeniti odmah. Ovo je korisno za ispravljanje štamparske greške, uredite sadržaj polja obrasca i za pretvaranje podataka iz jedne prezentacije formata u drugi.

var cRegExp = / ([a-z] +) \ s ([a-z] +) \ s ([a-z] +) / i; // kada se traži tri 'varijable'

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

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

dTestLine.innerHTML = 'izraz' + cRegExp + "za niz" '+ sTest + "okrenuti:' + cRegRes;

rezultat:

izraz / ([az] +) \ s ([az] +) \ s ([az] +) / i za liniju "ovaj članak je dobro!" out: članak je dobar, ovo!

Kada se vrši svaki par zagrada pohranjuje rezultat u 'varijabla' $ n, gdje je n - broj nosača parova ($ 1, $ 2, ...). Za razliku od konvencionalnih, evo varijabla numeriranje je 1, a ne 0.

Opšte preporuke

Regularni izraz pojednostavljuje kod, ali vremena da se razvije se često čini razliku. Možete početi s jednostavnim dizajnom, a zatim su da kombinuju u složenije izraze. Možete koristiti različite usluge na mreži za testiranje regularnih izraza ili posebne lokalne alata.

Najbolja opcija će stvoriti vlastite biblioteke regularnih izraza i vlastite alate za testiranje novih trendova. Ovo je najbolji način da se konsoliduje iskustvo i da nauče kako da brzo izgraditi pouzdan i udoban dizajn.

Koristeći ponavljanje likova i gudače, to jest, specijalni karakteri '*', '+' i proteze, što ukazuje na broj ponavljanja treba da se rukovodi principima jednostavnosti i svrsishodnosti. Važno je shvatiti da je regularni izraz na početku svog rada, a da se rezultat je potpuno u snagu motora koristi pretraživača. Nisu svi jezici su ekvivalent JavaScript. Svaki pretraživač mogu donijeti svoje lične preferencije u tumačenju regularnih izraza.

Kompatibilnost nije samo stranica i stil listova, za regularne izraze, ona također ima veze. Stranica koristi JavaScript, može se smatrati dobro funkcionira samo kad je uspješno radio na različitim preglednicima.

JavaScript, String i RegExp

Do pravi posao na nivou klijenta, odnosno u preglednik posjetitelja u JavaScript, zahtijeva visoke sposobnosti programera. dovoljno dugo imate priliku da debug JavaScript-kod pretraživača vlastitim sredstvima ili uz pomoć treće strane proširenja, kod urednika, nezavisna programa.

Međutim, nisu svi slučajevi, debugger može nositi i pružaju dobru potporu za programera, brzo otkrivanje grešaka, otkriti uska grla. Vremena kada je računar bio fokusiran na proračunima, u dalekoj prošlosti. Sada, obratite posebnu pažnju na informacije i linija predmeti su došli da igraju značajnu ulogu. Broj čelika konce, a svoju pravu prirodu oni ispoljavaju samo u pravo vrijeme i pravo mjesto.

Regularni izrazi pojačavaju mogućnost linije, ali zahtijevaju samopoštovanje. Debug RegExp u svom radu, čak i ako je moguće simulirati, nije previše zanimljiva ideja.

Razumijevanje strukture i logike RegExp objekta, što znači objekat String, sintaksa i semantika JavaScript - pravi sigurno i siguran kod, stabilan rad svake stranice i stranice u cjelini.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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