DatorerProgrammering

Javascript, reguljära uttryck exempel kontrollera reguljära uttryck

Före tillkomsten av hyper språk, utan snarare tills det blev klart att vi inte bara ska se ut, men att göra det under vissa förutsättningar, på en viss plats, under de ändrade uppgifterna i rätt mängd, vanliga sök och ersätt funktion organiserade alla sofistikerade programmerare. Skapa mästerverk av konst sökning i programmeringsspråk och databas utmärkte i form av provtagningsförhållandena, utrustad med lagrade procedurer, triggers och andra medel för skrymmande provrelationsinformationsspår. Utseendet på det reguljära uttrycket till revolutionen ledde inte, men det var ett bra och bekvämt sätt att hitta och ersätta information. Till exempel, reguljära uttryck JavaScript e avsevärt förenkla registrering av besökare, inte ladda webbplatsen skicka meddelanden till obefintliga adresser.

Att säga att en JavaScript reguljära uttryck är mycket bättre produmannnyh sekvenser indexOf () kallar inom ramen för konventionell cykliskt och operatörer, kan inte annat än säga att det har gjort script är kompakt, men lite förståeligt för den oinvigde kan vara entydigt.

Objekt RegExp = + mall motor

Reguljära uttryck - är en mall + motor. Den första är faktiskt ett reguljärt uttryck - JavaScript Object - RegExp, den andra - denna mall artist, tillämpa den på linjen. Motorer som implementerar reguljära uttryck för varje programmeringsspråk är olika. Och även om inte alla skillnader är betydande, bör man komma ihåg, liksom vara noga med att kontrollera det reguljära uttrycket innan dess funktion.

En särskild notation när du skriver reguljära uttryck är ganska lätt att använda och mycket effektivt, men det kräver vård, prydlighet och tålamod från utvecklaren. Genom notation behöver regelbunden uttrycksmönster för att vänja sig vid. Detta är inte en modefluga, det är logiken i en mekanism för att genomföra «JavaScript reguljära uttryck."

mönster för reguljära uttryck

Tillåts två alternativ:

var expOne = / abc * / i;

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

Typiskt används det den första metoden. I det andra fallet, offerter, eftersom att använda tecknet '\', det måste rymt av de allmänna reglerna.

"Jag - flagga som indikerar "case okänslig". Du kan också använda flaggor g '- «Global Sök' och 'm' - en multi-line sökning.

Symbolen '/' för att indikera vanligt att använda en mall.

Början och slutet av det reguljära uttrycket

Den '^' definierar tecknet (s) för att starta reguljära uttryck, och '$' bestämmer vilken karaktär (s) måste vara i slutet. Du bör inte experimentera med dem i ett uttryck, där de har en annan innebörd.

Till exempel,

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

Var cRegRes = '';

var sTest = 'ABCZ';

if (eRegExp.test (sTest)) {

cRegRes + = '- Ja';

} Else {

cRegRes + = '- nr';

}

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

dTestLine.innerHTML = 'Expression /' + cRegExp + '/ för rad "' + sTest + '"' + cRegRes.

Beståndsdelen scTestLine 'kommer att resultera (cRegExp variabel har en motsvarande betydelse):

uttryck / ^ ABCZ $ / för strängen "ABCZ" - Ja

Om du tar bort 'i' flagga, är resultatet:

uttryck / ^ ABCZ $ / för strängen "ABCZ" - Nej

Innehållet i ett reguljärt uttryck

Ett reguljärt uttryck är en följd av tecken, som är föremål för sökningen. Expression / qwerty / söker posten är denna sekvens:

uttryck / qwerty / för strängen "qwerty" - ja

uttryck / qwerty / för strängen "123qwerty456" - Ja

De '^' förändringar är uttryck:

uttryck / ^ qwerty / för strängen "123qwerty456" - Nej

uttryck / ^ qwerty / för strängen "qwerty456" - Ja

På liknande sätt, för slutet av linjesymbol. Reguljära uttryck möjliggör konsekvens, till exempel [az], [AZ], [0-9] - alla bokstäver i alfabetet i det här fallet eller siffror. Ryska bokstäver kan också användas, men bör vara uppmärksamma på kodningen av strängar (som söks som söks) och sidor. Ofta ryska bokstäver, samt specialtecken, är det att föredra att ställa in koder.

När man bildar ett reguljärt uttryck kan specificera alternativ för närvaro av vissa symboler i en viss plats, med deras antal anges som följer: '*' = 0 upprepning eller flera gånger; '+' = 1 eller flera upprepningstidpunkter; {1} är densamma, som '+'; {N} = upprepning exakt n gånger; {N,} = n repetitions gånger eller mer; {N, m} = upprepning av n till m gånger.

Med hjälp av konsoler, kan du ange teckenuppsättning med alternativ. Det ser ut så här. [Abcd] = [ad] = var fjärde symbol: 'a', 'b', 'c' eller 'd'. Du kan ange något annat. Alla tecken andra än de som i satsen: [^ abcd] = något annat än 'a' karaktär, 'b', 'c' eller 'd'. '?' Det tyder på att vid denna tidpunkt symbolen inte kan vara. '' anger något annat än indikerar radmatningstecken. Detta '\ n', '\ r', '\ u2028' eller '\ u2029'. Uttrycket '\ s * | \ S *' = '[\ s | \ S] * avses sökandet efter alla tecken, inklusive radbrytningar.

Förenklade versioner av reguljära uttryck

Uttrycket '[\ s | \ S] *' - sök utrymme, eller brist på sådan, är att allt som står på spel. I detta fall symbolen '\ s' indikerar ett utrymme, och '\ S' - hans frånvaro.

På samma sätt kan du använda '\ d' att söka efter decimaler, och '\ D' hitta en icke-siffra. Notation '\ f', 'r' och '\ n' motsvarar den form foder, vagnretur och radmatning.

Fliken karaktär - '\ t', vertikal - '\ v'. Beteckningen '\ w' finner någon latinska alfabetet tecken (bokstäver, siffror och understrykningstecken) = [A-Za-z0-9_].

Beteckningen '\ W' är ekvivalent med [^ A-Za-z0-9_]. Det innebär alla tecken som inte är en bokstav i alfabetet, nummer eller '_'.

Sök karaktär '\ 0' = Sök NUL tecken. Sök '\ xHH' eller '\ uhhhh' = Sök karaktär kod eller HHHH HH respektive. H - hexadecimal siffra.

Rekommenderade formuleringen och kodning av reguljära uttryck

Alla reguljära uttryck är viktigt att noga testats på olika versioner av rader.

Med erfarenhet av att skapa ett reguljärt uttryck fel kommer att bli mindre, men ändå bör alltid hållas i minnet att deras egen kunskap om reglerna för att skriva reguljära uttryck inte kan vara sant, särskilt när den "vanliga säsongen" flyttas från ett språk till ett annat.

Att välja mellan klassisk (exakt angivelse) och en förenklad version av ett reguljärt uttryck, är det bättre att föredra den första. När allt kommer omkring, i klassikerna alltid tydligt att både eftersträvas. Om reguljära uttryck eller söksträngen har ryska bokstäver, bör leda till en enda som kodar alla linjer och den sida som driver hitta JavaScript-kod utför ett reguljärt uttryck.

När det finns en karaktär bearbetning, icke-latinska alfabetet, är det vettigt att överväga en indikation på teckenkoderna, inte karaktärerna själva.

Vid genomförandet av sökalgoritmer i JavaScript reguljära uttryck bör kontrolleras noggrant. Det är särskilt viktigt att kontrollera teckenkodning.

De parentes i det reguljära uttrycket

Konsolerna definierar alternativen för symbolen, som måste vara eller inte vara på en viss plats, och runt - sekvensvarianter. Men detta är bara en allmän regel. Från det finns inget undantag, men det finns en mängd olika tillämpningar.

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

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

Var cRegRes = '';

var sTest = 'picture.jpg';

if (eRegExp.test (sTest)) {

cRegRes + = '- Ja';

} Else {

cRegRes + = '- nr';

}

resultat:

/[az]*.(png|jpg|gif)/ uttryck för linjen "picture.jpg" - Ja

/^[ad][az]*.(png|jpg|gif)/ uttryck för "picture.jpg" linje - Nej

/^[ad][az]*.(png|jpg|gif)/ uttryck för linjen "apicture.jpg" - Ja

/^[ad][az]*.(png|jpg|gif)/ uttryck för "apicture.jg" linje - Nej

Det bör noteras att alla, då en asterisk kan förekomma noll gånger. Detta innebär att den "vanliga säsongen" skulle kunna fungera på oväntade sätt i alla fall.

Kontrollera RegExp - testa e-post

Med jämna JavaScript uttryck erhålls två metoder, test och exec, och kan användas i rader objekt (sträng) i deras metoder (funktioner): sök, split, byta ut och match.

testmetod har redan visats, det kan du kontrollera riktigheten av det reguljära uttrycket. Metod Resultat: sant / falskt.

Tänk på följande JavaScript reguljära uttryck. Kontrollera e-post från antalet "svårt, men säkert"

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 sträng var sTest ='SlavaChip@sci.by 'ger sant, då det är denna sträng korrekt e-postadress. Revisionen utfördes av eRegExp.test (sTest).

Praktisk användning: behandling av e-post

Exec metod tillhandahåller utmatningen array, ring:

var aResult = eRegExp.exec (sTest);

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

Det ger följande resultat:

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

Andra metoder fungerar på samma sätt. Det rekommenderas att kolla upp dem själv. Utveckling och användning av reguljära uttryck, är det önskvärt att fungera i praktiken, är koden kopiering inte alltid klokt här.

Populära "ordinarie säsong"

JavaScript reguljära uttryck som ges till e-post inte bara finns många lättare alternativ. Till exempel /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Men tar detta utförande beaktas inte alla utföranden av den e-postadress posten.

Naturligtvis måste du visa erfarenhet av kollegor för att analysera hur deras föreslagna innan att utforma sina egna på JavaScript reguljära uttryck. Men det finns vissa svårigheter. Vi får inte glömma att en JavaScript reguljära uttryck (exempel på vid kopiering) kan duplicera viktiga tecken: '\', '/' eller citat. Detta kommer att leda till fel, som du kan söka länge.

Det är viktigt att ta hänsyn till den vanliga "mänskliga dimensionen". Efter formell JavaScript vanliga uttrycket för telefonen, vilket kan vara besökaren (person), ges det på olika sätt: 123-45-67, (29) 1234567, 80291234567 eller 375.291.234.567. Och det är allt samma nummer. Stavning flera mönster är inte alltid acceptabelt, och stel fixering av reglerna för att skriva siffror kan skapa onödig obehag eller begränsningar. Alternativ / ^ \ d [\ d \ (\) \ -] {4,14} \ d $ / i är lämplig för de flesta fall kontrollerar ditt telefonnummer.

Om du vill göra en JavaScript reguljära uttryck endast siffror kontroller, kräver även en sådan enkel fall förtydligande. Det bör betraktas som ett heltal eller bråk, vetenskaplig notation, eller normal, positivt eller negativt tal. Du kan också ta hänsyn till förekomsten av valutasymbolen, antalet siffror efter decimalkommat och delning av en hel del av numret på triaden.

Expression / ^ \ d + $ / jag kontrollera bara siffror och /^\d+\.\d+$/i uttryck tillåter användning av en punkt för att indikera bråkdelen av numret.

I JavaScript kontroll reguljära uttryck kan användas för att indikera formatet av den hårda indata, vilket är viktigt, särskilt när du anger profiler, passuppgifter och juridiska adresser t. D.

Kontrollera datum - enkla till komplexa

Överväga en annan JavaScript reguljära uttryck. Exempel hittills, som för antalet telefonnummer representerar valet mellan styvhet och flexibilitet. Datum för händelsen - en av de viktigaste uppgifterna, som ofta måste administreras. Men fastställande ingången i ett visst format: "dd-mm-åååå 'eller' d.m.gg 'ofta leder till missnöjda kunder. Övergången från inmatningsfältet på dagen till månad, full av klassiska HTML-formulär, kan inte ske när du anger en enda siffra, och den andra ingången kan vara svårt. Till exempel när det gäller den dag den infördes 3 och nästa nummer 2 ersätter inte den första, och tillskrivs hennes 32, vilket naturligtvis kommer att orsaka besvär.

Effektivitet och bekvämligheten med reguljära uttryck i huvudsak beror på den allmänna konstruktionen av en dialog med besökaren. I det ena fallet är det att ange datum lämpligt att använda ett inmatningsfält i formuläret, i det andra fallet är det nödvändigt att sörja för de olika fälten för dag, månad och år. Men sedan några ytterligare "kostnaderna för koden" för att kontrollera skottår, antalet månader, antalet dagar i dem.

Sök och ersätt, reguljära uttryck minne

JavaScript ersätta (reguljära uttryck) med hjälp av metoden enligt String objektet och tillåter oss att hitta värdet och ändra det omedelbart. Detta är användbart för att korrigera skrivfel, redigera innehållet i formulärfält och för att omvandla data från en presentation format till ett annat.

var cRegExp = / ([a-z] +) \ s ([a-z] ^) \ s ([a-z] ^) / i; // när du söker finns tre 'variabler'

var sTest = 'den här artikeln är bra!';
var cRegRes = sTest.replace (cRegExp, "$ 2, $ 3, $ 1");

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

dTestLine.innerHTML = 'uttrycket' + cRegExp + 'för strängen "' + sTest + '" Turn:' + cRegRes;

resultat:

expressions / ([az] +) \ s ([az] +) \ s ([az] +) / i för linjen "här artikeln är bra!" out: artikeln är bra, detta!

När man utför varje par av parenteser lagrar resultatet i "variabeln $ n, där n - antal konsolparen ($ 1, $ 2, ...). Till skillnad från konventionella, här variabel numrering är en, inte 0.

allmänna rekommendationer

Reguljärt uttryck förenklar koden, men tiden för att utveckla det gör ofta en skillnad. Du kan börja med enkla mönster och sedan att kombinera till mer komplexa uttryck. Du kan använda olika onlinetjänster för att testa reguljära uttryck eller speciella lokala verktyg.

Det bästa alternativet kommer att skapa sin egen bibliotek med reguljära uttryck och sina egna verktyg för att testa ny utveckling. Detta är det bästa sättet att konsolidera den erfarenhet och att lära sig att snabbt bygga pålitliga och bekväm design.

Använda upprepning av tecken och strängar, det vill säga specialtecken '*', '+' och hängslen, som anger antalet repetitioner bör vägledas av principerna om enkelhet och ändamålsenlighet. Det är viktigt att inse att ett reguljärt uttryck i början av sitt arbete, och för att få resultatet är helt i kraft av den motor som används av webbläsaren. Inte alla språk är likvärdiga med JavaScript. Alla webbläsare kan ta med sig sina personliga preferenser i tolkningen av reguljära uttryck.

Kompatibilitet är inte bara sidor och stilmallar, till reguljära uttryck, det har också att göra. Sidan använder JavaScript, kan betraktas som en väl fungerande bara när det har framgångsrikt arbetat med en mängd olika webbläsare.

JavaScript String och RegExp

Genom rätt jobb på klientnivå, det vill säga i besökarens webbläsare JavaScript, det kräver hög kompetens hos utvecklaren. Tillräckligt länge har du möjlighet att felsöka JavaScript-kod browser egna medel eller med hjälp av tredjepartstillägg, kod redaktörer, oberoende program.

Men inte alla fall kan debugger hantera och ger bra stöd för utvecklare, en snabb upptäckt fel, upptäcka flaskhalsar. Tiderna när datorn har fokuserats på beräkningarna i det avlägsna förflutna. Nu, ägna särskild uppmärksamhet åt information och linjeobjekt har kommit att spela en viktig roll. Antalet strängar av stål, och deras sanna natur de manifesterar bara vid rätt tidpunkt och rätt plats.

Reguljära uttryck förstärker möjligheten av linjer, men kräver självrespekt. Debug RegExp i sitt arbete, även om det är möjligt att simulera, inte alltför intressant idé.

Att förstå strukturen och logiken i RegExp objektet, vilket objekt String, syntax och semantik av JavaScript - en sann trygg och säker kod, stabil drift på varje sida och platsen som helhet.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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