ArvutidProgrammeerimine

Javascript, regulaaravaldise näiteid, vaadake regulaaravaldis

Enne tulekut hüperteksti keele, vaid pigem kuni sai selgeks, et me ei tohiks lihtsalt vaadata, aga seda teatud tingimustel teatud paigas all muutunud andmed õiges koguses, tavaline otsida ja asendada funktsiooni organiseeritud keerukaid programmeerija. Loo meistriteosed kunsti otsing programmeerimiskeeli ja andmebaasi paistnud vormid proovivõtmise tingimusi, mis on varustatud salvestatud protseduurid, vallandab ja muud vahendid mahukate proovi relatsiooniline teavet lugusid. Välimus regulaaravaldis revolutsiooni ei viinud, kuid see oli kasulik ja mugav viis leida ja asendada teavet. Näiteks regulaaravaldiste JavaScript e lihtsustavad oluliselt külastajate ärge laadige veebilehel sõnumite saatmine olematu aadressid.

Öelda, et JavaScript regulaaravaldise on palju parem produmannnyh järjestused IndexOf () nõuab kaadris tavapäraste tsükliliste ja ettevõtjad, ei saa aga öelda, et ta on teinud skripti koodi on kompaktne, kuid vähe arusaadav Võhikud, saab üheselt.

Objekti RegExp = + template mootori

Regulaaravaldisi - on malli + mootor. Esimene on tegelikult regulaaravaldise - JavaScript element - RegExp, teine - selle malli esineja, rakendada seda joont. Mootorid, et rakendada regulaaravaldiste iga programmeerimiskeelt on erinevad. Ja kuigi mitte kõik erinevused on märkimisväärsed, tuleb meenutada, samuti kindlasti hoolikalt kontrollida regulaaravaldise enne selle operatsiooni.

Eriline märge kirjutamisel regulaaravaldiste on üsna lihtne kasutada ja üsna tõhus, kuid see vajab hooldust, puhtus ja kannatlikkust arendaja. Autor märge regulaaravaldise mustrid vaja harjuda. See ei ole moehullus, see on loogika rakendamismehhanism «JavaScript regulaaravaldisi."

regulaaravaldise

Lubatud kaks võimalust:

var expOne = / abc * / i;

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

Tüüpiliselt kasutatakse esimese meetodiga. Teisel juhul, jutumärgid, sest kasutada iseloomu "\", siis tuleb pääsenud üldeeskirjadega.

"I" - Märge "tõstutundetu". Võite kasutada ka lipud "g" - «Global Search" ja "m" - mitmerealine otsing.

Sümbol "/", mis näitab ühise kasutada malli.

Alguses ja lõpus regulaaravaldise

Märk "^" määratleb iseloomu (s), millest alustada regulaaravaldise ja '$' määrab, millised iseloomu (s) peab olema lõpus. Sa ei tohiks katsetada neid sees väljendus, kus neil on erinev tähendus.

Näiteks

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

var cRegRes = '';

var stest = 'AbcZ';

if (eRegExp.test (stest)) {

cRegRes + = "- Jah";

} Else {

cRegRes + = '- No';

}

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

dTestLine.innerHTML = "Expression /" + cRegExp + '/ reas "" + stest + "" "+ cRegRes.

Element "scTestLine" toob kaasa (cRegExp muutuja on vastav tähendus):

Väljend / ^ AbcZ $ / stringi "abcz" - Jah

Kui eemaldate "i" lipu, tulemus on:

Väljend / ^ AbcZ $ / stringi "abcz" - Ei

Sisu regulaaravaldise

Regulaaravaldis on märgijada, mis on teema otsing. Expression / qwerty / otsin kanne on selles järjestuses:

Väljend / qwerty / stringparameetri "qwerty" - Jah

Väljend / qwerty / stringparameetri "123qwerty456" - Jah

Märk "^" muutused on märge:

Väljend / ^ qwerty / stringparameetri "123qwerty456" - Ei

Väljend / ^ qwerty / stringparameetri "qwerty456" - Jah

Samamoodi rea lõpu sümbol. Regulaaravaldisi võimaldada järjepidevust: näiteks [az], [AZ] [0-9] - kõik tähestiku tähti sel juhul või arvud. Vene tähti võib kasutada ka, kuid peaks pöörama tähelepanu kodeerimine stringid (mis taotletakse, et taotletakse) ja lehti. Sageli vene tähed, samuti erimärke, on eelistatav, et määrata koodid.

Kui moodustades regulaaravaldise saab määrata valikud olemasolu teatud sümbolite konkreetse asukoha, nende arv antud järgmiselt: "*" = 0 kordus või enam korda; "+" = 1 või mitu kordusi korda; {1} on sama, kui "+"; {N} = kordus täpselt n korda; {N} = n kordamine või enam korda; {N, m} = kordamine n kuni m korda.

Kasutades sulgudes saate määrata kooditabel võimalusi. See näeb välja selline. [ABCD] = [reklaam] = iga nelja sümboliga "a", "b", "c" või "d". Saate määrata teisiti. Suvaline märk ei ole nimetatud Komplektis: [^ abcd] = suvaline märk va "a", "b", "c" või "d". "?" See näitab, et sel hetkel sümbol ei saa olla. "." täpsustab iga märk peale näitab reavahetus. See '\ n', '\ r "," \ u2028 "või" \ u2029 ". Väljend "\ s * | \ S *" = "[\ s | \ S] *" tähendab otsing ühtegi iseloomu, sealhulgas reavahetused.

Lihtsustatud versioon regulaaravaldise

Väljend "[\ s | \ S] *" - search ruumi või selle puudumist, mis on kõik, mis on liinil. Sel juhul märgitakse tähis "\ s" viitab ruumi ja "\ S" - tema äraolekul.

Samamoodi saab kasutada '\ d' otsida komakohti ja "\ D" leida mittearvulise iseloomu. Märge "\ f", "r" ja "\ n" vastavad kujule toita, kelgu tagastuse ja reavahetus.

Vaheleht iseloomu - "\ t", vertikaalne - "\ v. Nimetus "\ w" leiab mis tahes ladina tähestiku iseloomu (tähti, numbreid ja kriipsu) = [A-Za-z0-9_].

Nimetust "\ W" on samaväärne [^ A-Za-z0-9_]. See tähendab, iga märk, mis ei ole täht, number või "_".

Otsi iseloomu '\ 0' = otsing NUL tähemärki. Otsi '\ Xhh "või" \ Uhhhh "= Otsi koodiga või hhhh HH vastavalt. H - kuueteistkümnendkoodis.

Soovitatav sõnastus ja kodeerimise regulaaravaldise

Iga regulaaravaldis on oluline hoolikalt testitud erinevaid versioone rida.

Mis kogemusi luua regulaaravaldise viga olla väiksem, kuid siiski tuleb alati meeles pidada, et oma teadmisi reeglid kirjalikult regulaaravaldiste ei saa olla tõsi, eriti kui "tavaline hooajal" viiakse üle ühest keelest teise.

Parim vahel klassikaline (täpne teave) ja lihtsustatud versioon regulaaravaldise, siis on parem eelistada esimest. Lõppude lõpuks, klassika on alati selgelt näidatud, et nii taotletakse. Kui regulaaravaldise või otsisõna on vene tähti, peaks viima ühe kodeerib kõik read ja leht, kus tegutseb leida JavaScript koodi sooritab regulaaravaldise.

Kui on iseloomu töötlemise, mitte-ladina tähestikus, on mõttekas kaaluda märge iseloomu koodid, mitte tähtedega ise.

Rakendamisel otsing algoritme JavaScript regulaaravaldise tuleks hoolikalt kontrollida. See on eriti oluline, et kontrollida märgikodeering.

Sulgudes on regulaaravaldis

Sulgudes määratleda võimalused sümbol, mis peab olema või mitte olla teatud kohas, ja vastupidi - järjestusvarianti. Aga see on ainult üldine reegel. Alates seal ei ole erand, kuid seal on erinevaid rakendusi.

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

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

var cRegRes = '';

var stest = 'pilt.jpg';

if (eRegExp.test (stest)) {

cRegRes + = "- Jah";

} Else {

cRegRes + = '- No';

}

tulemused:

/[az]*.(png|jpg|gif)/ ekspressiooni rida "pilt.jpg" - Jah

/^[ad][az]*.(png|jpg|gif)/ väljend "pilt.jpg" joon - Ei

/^[ad][az]*.(png|jpg|gif)/ ekspressiooni rida "apicture.jpg" - Jah

/^[ad][az]*.(png|jpg|gif)/ väljend "apicture.jg" joon - Ei

Tuleb märkida, et kõik, siis tärniga võib esineda null korda. See tähendab, et "tavaline hooajal" võib töötada ettearvamatult vähemalt.

Kontrolli RegExp - katsetamine e

Korrapäraste JavaScript väljend saadud kahest meetodist, katse ja exec ja saab kasutada read objektide (String) nende meetodite (funktsioonid): otsi, lõhenenud, asendada ja match.

katsemeetod on juba näidanud, see võimaldab teil õigsuse kontrollimiseks regulaaravaldise. Meetod Tulemus: õige / vale.

Kaaluge järgmist JavaScript regulaaravaldisi. Kontrolli e-posti arvu "raske, kuid kindlasti":

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 "annab tõsi, siis on see string on õige e-posti aadress. Audit viidi läbi eRegExp.test (stest).

Praktiline kasutamine: ravi e-posti

Exec meetod annab väljundi massiiv, helistage:

var Aresult = eRegExp.exec (stest);

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

See annab järgmise tulemuse:

9
Slava.Chip@sci.by
Slava.Chip
Slava.Chip
.Chip
defineerimata
sci.by
defineerimata
sci.by
sci.

Muud meetodid toimivad sarnaselt. Soovitav on vaadata neid ise. Arengu ja regulaaravaldiste kasutamine on soovitav töötada praktikas, kood kopeerimine ei ole alati soovitav siin.

Enim "regulaarne hooaja"

JavaScript regulaaravaldise antud e-posti mitte ainult seal on palju rohkem lihtne võimalusi. Näiteks /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Kuid see teostus võtab arvesse mitte kõigi teostuste e-posti aadress rekord.

Loomulikult peate vaadata kogemusi kolleegidega, et analüüsida, kuidas nende ettepanek enne kujundada oma JavaScript regulaaravaldisi. Kuid on mõningaid raskusi. Me ei tohiks unustada, et JavaScript regulaaravaldisi (näited kopeerimisel) võib dubleerida olulisi märke: "\", "/" või hinnapakkumisi. See toob kaasa vea, kus saab otsida pikk.

Oluline on arvestada tavapärasest "inimlikku mõõdet." Pärast ametliku JavaScript regulaaravaldise telefoni, mis võib olla külastaja (inimene), on esitatud erineval viisil: 123-45-67, (29) 1234567, 80291234567 või 375291234567. Ja see kõik on sama number. Õigekiri mitmeid valemeid ei ole alati vastuvõetav ja jäik fikseerimine eeskirjad kirjalikult numbrid võivad põhjustada tarbetuid ebamugavusi või piirangud. Võimalus / ^ \ d [\ d \ (\) \ -] {4,14} \ d $ / i sobib enamasti teil kontrollida oma telefoninumber.

Kui soovite teha JavaScript regulaaravaldisi, vaid numbrit kontrolli, isegi selline lihtne juhul vajab täpsustamist. Tuleb kaaluda täisarv või fraktsioneeriva, teaduskuju või normaalne, positiivne või negatiivne arv. Võite arvestada olemasolu valuuta sümboli, numbrite arvu pärast koma ja jaotus kogu osa number kolmkõla.

Expression / ^ \ d + $ / i kontrollida ainult numbreid ja /^\d+\.\d+$/i väljend võimaldab kasutada punkti, mis näitab fraktsioneerival osa number.

JavaScript kontrollimiseks regulaaravaldiste saab näidata vorming raske sisendandmed, mis on oluline, eriti kui sisenevad profiilid, passi andmed, ja juriidiliste aadresside t. D.

Kontrollige kuupäevad - lihtne kompleksi

Mõtle teise JavaScript regulaaravaldisi. Näited seni, kui arvu telefoninumbreid esindavad valida jäikuse ja paindlikkuse. Sündmuse kuupäev - üks olulisi andmeid, mis peavad sageli manustada. Aga millega sisend kindlas vormingus: "dd-mm-aaaa" või "d.m.gg" viib sageli klientide rahulolematus. Üleminek väljale päev-kuu, täis klassikaline HTML-vormi, ei saa toimuda, kui sisestate ainult üks number, ja teine sisend võib olla raske. Näiteks valdkonnas, mil see võeti kasutusele 3 ja järgmisel number 2 ei asenda esimene ja omistatakse talle 32, mis muidugi tekitab ebamugavust.

Tõhususe ja mugavuse regulaaravaldiste sõltuvad peamiselt Üld- dialoogi külastaja. Ühel juhul märgib kuupäeva on soovitav kasutada ühte väljale vormi, teisel juhul on vaja ette näha eri valdkondades päev, kuu ja aasta. Aga siis täiendavat "kulud koodi" kontrollida liigaasta, kuude arv, päevade arv neis.

Otsi ja asenda, regulaaravaldise mälu

JavaScript asendada (regulaaravaldiste) meetodil String objekt ja võimaldab meil leida raha ja seda kohe muuta. See on kasulik parandatakse trükivead, muuta sisu vormi väljad ja ümberehitamiseks andmeid ühest esitusviisi teise.

var cRegExp = / ([a-z] +) \ s ([a-z] +) \ s ([a-z] +) / i; // otsides on kolm "muutujad"

var stest = 'see artikkel on hea! ";
var cRegRes = sTest.replace (cRegExp, "$ 2, $ 3 $ 1");

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

dTestLine.innerHTML = "väljend" + cRegExp + "jaoks stringi" "+ stest +" "keerata" + cRegRes;

tulemus:

Väljend / ([az] +) \ s ([az] +) \ s ([az] +) / i liini jaoks "see artikkel on hea!" välja: artikkel on hea, see!

Tehes iga sulgudes talletab tulemuse nn muutuva '$ n, kus n - arvu sulg paarid ($ 1, $ 2, ...). Erinevalt tavalistest siin muutuja numeratsioon on 1, ei 0.

Üldised soovitused

Regulaaravaldise lihtsustab koodi, kuid aega, et arendada seda sageli teeb vahet. Võite alustada lihtsa kujunduse ja seejärel tehtud kombineerida arvesse keerulisem väljendeid. Saate kasutada erinevaid võrguteenuseid testida regulaaravaldiste või erilist kohalikku tööriistu.

Parim valik loob oma raamatukogu regulaaravaldiste ja oma tööriistad katsetada uusi arenguid. See on parim viis kindlustada kogemusi ja õppida, kuidas kiiresti ehitada usaldusväärne ja mugav disain.

Kasutades kordamine tähemärki ja stringid, mis on erimärgid "*", "+" ja traksid, mis näitab korduste arvu tuleks juhinduda lihtsuse ja otstarbekuse. On oluline mõista, et regulaaravaldise alguses oma tööd ja saada tulemus on täielikult võimu mootor kasutab brauser. Mitte kõik keeled on võrdsed JavaScript. Iga brauser võivad nende isiklikke eelistusi tõlgendamisel regulaaravaldiste.

Sobivuse ei ole ainult lehti ja stiili lehed, regulaaravaldisi, see on ka teha. Leht kasutab JavaScripti, võib pidada hästi toimiv ainult siis, kui see on edukalt töötanud erinevaid brausereid.

JavaScript, String ja RegExp

Autor õige töö kliendi juures tasandil, et on külastaja brauseri JavaScript, see nõuab suurt oskust arendaja. Piisavalt kaua teil on võimalus siluda JavaScript koodi brauseri omavahenditest või abiga kolmanda osapoole laiendusi, kood toimetajad, sõltumatu programmid.

Kuid mitte kõikidel juhtudel, siluri saavad hakkama ja pakkuda head tuge arendajale, kiire vigade avastamise, tuvastada kitsaskohti. Ajad, mil arvuti on keskendunud arvutused, kauges minevikus. Nüüd pöörame erilist tähelepanu teabe ja joonobjektide jõudnud mängida olulist rolli. Arv terasest stringid ja nende tõelist olemust nad avalduvad ainult õigel ajal ja õiges kohas.

Regulaaravaldisi tugevdada võimalust read, kuid nõuavad enese suhtes. Debug RegExp oma töös, isegi kui see on võimalik simuleerida, mitte liiga huvitav idee.

Mõistmise struktuuri ja loogika RegExp objekti, mis tähendab objekti String, süntaksi ja semantika JavaScript - tõeline ohutu ja turvaline koodi, stabiilse toimimise igal leheküljel ja sait tervikuna.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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