ComputereProgrammering

Javascript, regulære udtryk eksempler, tjek regulært udtryk

Før fremkomsten af hypertekst sprog, men snarere, indtil det blev klart, at vi ikke bare skal se, men at gøre det under visse betingelser, på et bestemt sted, under de ændrede data i de rigtige mængder, den sædvanlige søg og erstat funktion organiseret ethvert avanceret programmør. Opret mesterværker af kunst søgning i programmeringssprog, og databasen udmærkede sig i form af prøvetagning betingelser, der er udstyret med lagrede procedurer, triggere og andre midler til storskrald prøve relationel oplysninger spor. Udseendet af det regulære udtryk til revolutionen førte ikke, men det var en nyttig og bekvem måde at finde og erstatte information. For eksempel regulære udtryk JavaScript email forenkle registreringen af besøgende betydeligt, ikke indlæse websiden sende beskeder til ikke-eksisterende adresser.

At sige, at et JavaScript regulært udtryk er meget bedre produmannnyh sekvenser indexOf () kalder i rammen af konventionelle cykliske og operatører, kan ikke, men sige, at det har gjort det script kode er kompakt, men lidt forståeligt for de uindviede, kan være entydigt.

Objekt RegExp = + skabelon motor

Regulære udtryk - er en skabelon + motor. Den første er faktisk et regulært udtryk - JavaScript objekt - RegExp, den anden - denne skabelon performer, anvende den til linjen. Motorer, der gennemfører regulære udtryk for hver programmeringssprog er forskellige. Og selvom ikke alle forskelle er signifikante, bør det erindres, samt være sikker på at omhyggeligt kontrollere det regulære udtryk før dens drift.

En særlig notation når du skriver regulære udtryk er ganske nem at bruge og ganske effektiv, men det kræver pleje, pænheden og tålmodighed fra udvikleren. Ved notation nødt til at vænne sig til regulære udtryk mønstre. Dette er ikke et modefænomen, det er logik en mekanisme til gennemførelse «JavaScript regulære udtryk."

regulært udtryk

Tilladt to muligheder:

var expOne = / abc * / i;

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

Typisk det bruges den første metode. I det andet tilfælde, de citater, fordi at bruge tegnet '\', det må undslap af de almindelige regler.

"Jeg - flag angiver "små bogstaver". Du kan også bruge flag g '- «Global Search' og 'm' - en multi-line søgning.

Symbolet '/' for at angive almindeligt at bruge en skabelon.

Begyndelsen og slutningen af det regulære udtryk

Den '^' definerer tegnet (r), hvorfra man kan starte det regulære udtryk, og '$' bestemmer, hvilke tegn (e) skal være i slutningen. Du bør ikke eksperimentere med dem inde et udtryk, hvor de har en anden betydning.

For eksempel

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

Var cRegRes = '';

var sTest = 'AbcZ';

hvis (eRegExp.test (sTest)) {

cRegRes + = '- Yes';

} Else {

cRegRes + = '- Nej';

}

var dTestLine = document.getElementById (scTestLine ');

dTestLine.innerHTML = 'Expression /' + cRegExp + '/ for række "' + sTest + '"' + cRegRes.

Elementet 'scTestLine' vil resultere (cRegExp variabel har en tilsvarende betydning):

udtryk / ^ AbcZ $ / efter strengen "abcz" - Ja

Hvis du fjerner 'i' flag, er resultatet:

udtryk / ^ AbcZ $ / efter strengen "abcz" - Nej

Indholdet af et regulært udtryk

Et regulært udtryk er en sekvens af tegn, der er genstand for søgningen. Ekspression / qwerty / søger posten er denne sekvens:

udtryk / qwerty / til strengen "qwerty" - Ja

udtryk / qwerty / til strengen "123qwerty456" - Ja

De '^' ændringer er udtryk:

udtryk / ^ qwerty / til strengen "123qwerty456" - Nej

udtryk / ^ qwerty / til strengen "qwerty456" - Ja

Tilsvarende for enden af linjen symbol. Regulære udtryk giver mulighed for konsistens: for eksempel [az], [AZ], [0-9] - alle bogstaverne i alfabetet i denne sag eller figurer. Russiske bogstaver kan også anvendes, men bør være opmærksom på kodning af strenge (som søges der søges) og sider. Ofte russiske bogstaver samt specialtegn, er det at foretrække at sætte koder.

Når der dannes et regulært udtryk kan angive indstillinger for tilstedeværelsen af visse symboler i en bestemt placering, med deres nummer givet som følger: '*' = 0 gentagelse eller flere gange; '+' = 1 eller flere gentagelser gange; {1} er den samme, som '+'; {N} = gentagelse nøjagtigt n gange; {N,} = n gentagelse gange eller mere; {N, m} = gentagelse af n til m gange.

Ved hjælp af konsoller, kan du angive tegnsæt af muligheder. Det ser sådan ud. [Abcd] = [ad] = hver fire symbol: 'a', 'b', 'c' eller 'd'. Du kan angive andet. Enhver anden end de i tegnsættet: [^ abcd] = alle andre end 'a' karakter, 'b', 'c' eller 'd'. '?' Det indikerer, at på dette tidspunkt symbolet kan ikke være. '' angiver noget andet end indikerer newline karakter. Denne '\ n', '\ r', '\ u2028' eller '\ u2029'. Udtrykket '\ s * | \ S *' = '[\ s | \ S] *': søgning efter ethvert tegn, herunder linjeskift.

Forenklet versioner af regulært udtryk

Udtrykket '[\ s | \ S] *' - søgning plads, eller mangel på samme, der er alt, hvad der på linjen. I dette tilfælde symbolet '\ s' angiver et mellemrum, og '\ S' - hans fravær.

På samme måde kan du bruge '\ d' for at søge efter de decimaler, og '\ D' finde en ikke-numerisk tegn. Notation '\ f', 'r' og '\ n', svarer til den form-feed, vognretur og linjeskift.

Fanen karakter - '\ t', lodret - '\ v'. Betegnelsen '\ w' finder nogen latinske alfabet tegn (bogstaver, tal og understregning mærket) = [A-Za-z0-9_].

Betegnelsen '\ W' svarer til [^ A-Za-z0-9_]. Det betyder ethvert tegn, der ikke et bogstav i alfabetet, tal, eller '_'.

Søg karakter '\ 0' = search NUL-tegn. Søg '\ xHH' eller '\ uhhhh' = Søg karakter kode eller HHHH HH hhv. H - hexadecimalt ciffer.

Anbefalet ordlyd og kodning af regulært udtryk

Enhver regulære udtryk er vigtigt nøje testet på forskellige versioner af rækker.

Med den erfaring med at skabe et regulært udtryk fejl vil være mindre, men ikke desto mindre bør altid holdes for øje, at deres egen viden om reglerne for at skrive regulære udtryk ikke kan være sandt, især når den "regulære sæson" overføres fra et sprog til et andet.

At vælge mellem klassiske (nøjagtig betegnelse) og en forenklet version af et regulært udtryk, er det bedre at foretrække den første. Efter alt, i klassikerne er altid tydeligt angivet, at begge søgte. Hvis det regulære udtryk eller søgestreng har russiske bogstaver, bør føre til en enkelt koder alle linjer og den side, der driver finde JavaScript-kode udfører et regulært udtryk.

Når der er et tegn behandling, ikke-latinske alfabet, giver det mening at overveje en angivelse af tegnkoder, ikke de tegn selv.

Ved gennemførelsen af søgealgoritmer i JavaScript regulært udtryk bør nøje kontrolleres. Det er særlig vigtigt at kontrollere tegnsæt.

De parenteser i det regulære udtryk

Beslagene definerer mulighederne for symbolet, som skal være eller ikke kan være på et bestemt sted, og rund - sekvens varianter. Men dette er kun en generel regel. Fra det der er ingen undtagelse, men der er en bred vifte af applikationer.

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

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

Var cRegRes = '';

var sTest = 'billede.jpg';

hvis (eRegExp.test (sTest)) {

cRegRes + = '- Yes';

} Else {

cRegRes + = '- Nej';

}

resultater:

/[az]*.(png|jpg|gif)/ udtryk for linjen "billede.jpg" - Ja

/^[ad][az]*.(png|jpg|gif)/ udtryk for "billede.jpg" linie - Nej

/^[ad][az]*.(png|jpg|gif)/ udtryk for linjen "apicture.jpg" - Ja

/^[ad][az]*.(png|jpg|gif)/ udtryk for "apicture.jg" linie - Nej

Det skal bemærkes, at alle, så en stjerne kan være til stede nul gange. Det betyder, at den "regulære sæson" kan arbejde på uventede måder i det mindste.

Check RegExp - test af e-mail

Ved regelmæssig JavaScript udtryk opnåede to metoder, test og exec, og kan bruges i linjer objekter (String) i deres metoder (funktioner): søg, split, udskifte og kamp.

testmetode er allerede blevet demonstreret, det giver dig mulighed for at kontrollere rigtigheden af det regulære udtryk. Metode Resultat: sand / falsk.

Overvej følgende JavaScript regulære udtryk. Tjek e-mail fra antallet af "vanskelige, men bestemt":

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

en streng was sTest ='SlavaChip@sci.by 'giver sandt, så er der denne streng er den korrekte e-mail-adresse. Revisionen blev gennemført af eRegExp.test (sTest).

Praktisk brug: behandling af e-mail

Exec metode giver output array, ring:

var aresult = eRegExp.exec (sTest);

cRegRes = '
' + aResult.length + '
';
for (var i = 0; i cRegRes + = aresult [i] + '
';
}

Det giver følgende resultat:

9
Slava.Chip@sci.by
Slava.Chip
Slava.Chip
.Chip
undefined
sci.by
undefined
sci.by
sci.

Andre metoder fungerer på samme måde. Det anbefales at tjekke dem ud selv. Udvikling og anvendelse af regulære udtryk, er det ønskeligt at fungere i praksis, koden kopiering er ikke altid tilrådeligt her.

Populære "regulære sæson"

JavaScript regulære udtryk givet til e-mail ikke alene er der mange flere nemme muligheder. For eksempel /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Men denne udformning tager højde ikke alle udformninger af e-mail-adresse rekord.

Selvfølgelig skal du se oplevelsen af kolleger, at analysere, hvordan deres foreslåede før at designe deres egne på JavaScript regulære udtryk. Men der er nogle problemer. Vi må ikke glemme, at et JavaScript regulære udtryk (eksempler på ved kopiering) kan duplikere de væsentlige tegn: '\', '/' eller citater. Dette vil føre til fejl, som du kan søge længe.

Det er vigtigt at tage hensyn til den sædvanlige "menneskelige dimension." Efter formel JavaScript almindelige udtryk for telefonen, som kan være den besøgende (person), er det givet på forskellige måder: 123-45-67, (29) 1234567, 80291234567 eller 375.291.234.567. Og det er alle de samme tal. Stavning flere mønstre er ikke altid acceptabelt, og stiv fiksering af reglerne for at skrive numre kan skabe unødig ubehag eller restriktioner. Ekstraudstyr / ^ \ d [\ d \ (\) \ -] {4,14} \ d $ / i er velegnet til de fleste tilfælde kan du kontrollere dit telefonnummer.

Hvis du ønsker at gøre en JavaScript regulære udtryk, kun cifre kontrol, kræver afklaring selv sådan en simpel sag. Det bør overvejes et heltal eller fraktioneret, videnskabelig notation eller normal, positivt eller negativt tal. Du kan også tage hensyn til eksistensen af valutaen symbol, antallet af cifre efter kommaet og opdelingen af hele del af nummeret på triade.

Expression / ^ \ d + $ / jeg tjekke kun tal og /^\d+\.\d+$/i udtryk tillader brug af et punkt til at angive den brøkdelen af nummeret.

I JavaScript kontrol regulære udtryk kan bruges til at angive formatet for den hårde data input, hvilket er vigtigt, især når du indtaster profiler, oplysninger om pas og juridiske adresser t. D.

Tjek datoerne - enkle til det komplekse

Overveje en anden JavaScript regulære udtryk. Eksempler til dato, som for antallet af telefonnumre repræsenterer valget mellem stivhed og fleksibilitet. Dato for begivenhed - en af de vigtige data, som ofte har skal administreres. Men fastsættelse input i et bestemt format: "dd-mm-yyyy 'eller' d.m.gg 'fører ofte til kundeutilfredshed. Overgangen fra indtastningsfeltet af dag-til-måned, fuld af klassiske HTML-form, kan ikke finde sted, når du indtaster kun ét ciffer, og den anden indgang kan være svært. For eksempel i forbindelse med den dag, det blev indført 3 og det næste nummer 2 erstatter ikke den første, og tilskrives hendes 32, hvilket naturligvis vil være til gene.

Effektivitet og bekvemmelighed af regulære udtryk væsentlige afhænge af den generelle opbygning af en dialog med den besøgende. I et tilfælde, at angive den dato er det tilrådeligt at bruge en indgang på formularen, i det andet tilfælde er det nødvendigt at sørge for de forskellige områder for dag, måned og år. Men så eventuelle yderligere "omkostninger kode" for at kontrollere skudår, det antal måneder, det antal dage i dem.

Søg og erstat, regulære udtryk hukommelse

JavaScript erstatte (regulære udtryk) ved hjælp af fremgangsmåden String objekt, og tillade os at finde værdien og ændre det med det samme. Dette er nyttigt for at korrigere tastefejl, redigere indholdet af formularfelterne og til konvertering af data fra en præsentation format til et andet.

var cRegExp = / ([a-z] +) \ s ([a-z] +) \ s ([a-z] +) / i; // når du søger er tre 'variable'

var sTest = 'denne artikel er god!';
var cRegRes = sTest.replace (cRegExp, "$ 2, $ 3, $ 1");

var dTestLine = document.getElementById (scTestLine ');

dTestLine.innerHTML = 'udtryk' + cRegExp + 'for strengen "' + sTest + '" turn:' + cRegRes;

resultat:

udtryk / ([az] +) \ s ([az] +) \ s ([az] +) / i for linjen "denne artikel er god!" ud: artiklen er god, dette!

Når der udføres hvert par af parenteser lagrer resultatet i »variablen $ n, hvor n - antal konsolpar ($ 1, $ 2, ...). I modsætning til konventionelle, her variabel nummerering er 1, ikke er 0.

Generelle anbefalinger

Regulært udtryk forenkler koden, men den tid til at udvikle det ofte gør en forskel. Du kan starte med enkle designs og derefter gjort for at kombinere til flere komplekse udtryk. Du kan bruge forskellige online-tjenester til at teste regulære udtryk eller særlige lokale værktøjer.

Den bedste løsning vil skabe deres eget bibliotek af regulære udtryk og deres egne værktøjer til at teste nye udviklinger. Dette er den bedste måde at konsolidere den erfaring og for at lære, hvordan du hurtigt opbygge pålidelig og komfortabelt design.

Ved hjælp af gentagelse af tegn og strygere, der er, specialtegn '*', '+' og seler, der angiver antallet af gentagelser bør være styret af principperne om enkelhed og hensigtsmæssighed. Det er vigtigt at indse, at et regulært udtryk til begyndelsen af sit arbejde, og for at få resultatet er helt i kraft af den motor, der bruges af browseren. Ikke alle sprog svarer til JavaScript. Hver browser kan bringe deres personlige præferencer i fortolkningen af regulære udtryk.

Kompatibilitet er ikke kun sider og style sheets, til regulære udtryk, det har også at gøre. Den side bruger JavaScript, kan betragtes som en velfungerende, når det med succes har arbejdet på en række forskellige browsere.

JavaScript String og RegExp

Ved det rigtige job på klientens niveau, det vil sige i den besøgendes browser i JavaScript, det kræver høje kvalifikationer af udvikleren. Længe nok har du mulighed for at kigge JavaScript-kode browserens egenkapital eller med hjælp af tredjeparts udvidelser, kode redaktører, uafhængige programmer.

Imidlertid kan debuggeren i mange tilfælde håndtere og give udvikleren god support, hurtig fejlregistrering og påvisning af flaskehalse. Tiderne, hvor computeren var fokuseret på computing, i den fjerne fortid. Nu lægges der særlig vægt på information, og linjens formål begyndte at spille en afgørende rolle. Tallene er blevet strenge, og de manifesterer deres sande kerne kun på det rigtige tidspunkt og på det rigtige sted.

Regelmæssige udtryk forstærker linjens muligheder, men kræver respekt. Debug RegExp i processen med sit arbejde, selvom det er muligt at modelere, ikke for interessant idé.

Forståelsen af strukturen og logikken i RegExp-objektet, betydningen af String-objektet, JavaScript-syntaksen og semantikken er en sikker garanti for sikker og pålidelig kode, den stabile drift af hver side og webstedet som helhed.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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