DatoriProgrammēšana

Javascript, regulārā izteiksme: piemēri, regulāro izteiksmju pārbaude

Pirms Advent hiperteksta valodu, bet gan līdz brīdim, kad kļuva skaidrs, ka mums vajadzētu ne tikai apskatīt, bet to darīt ar dažiem nosacījumiem, konkrētā vietā, izmainītos datus pareizajās daudzumos, ierasto meklēt un aizstāt funkcija organizē jebkura sarežģīta programmētājs. Izveidot šedevrus mākslas meklēšanai programmēšanas valodas un datu bāzu izcilām formas paraugu ņemšanas nosacījumus, kas aprīkoti ar glabā procedūras, izraisa, un citiem līdzekļiem, lielgabarīta izlases relāciju informācijas sliedēm. No regulāras izteiksmes revolūcijas izskats neradīja, bet tas bija noderīgs un ērts veids, kā atrast un aizstāt informāciju. Piemēram, regulārās izteiksmes JavaScript email būtiski vienkāršo reģistrāciju apmeklētāju, neielādējiet vietni ziņojumu sūtīšanu neesošiem adresēm.

Teikt, ka JavaScript regulāra izteiksme ir daudz labāk produmannnyh sekvences indexOf () aicina rāmī parasto cikliska un operatoriem, nevar taču teikt, ka tā ir veikusi skripts kods ir kompakts, bet maz saprotama uninitiated, var nepārprotami.

Objektu RegExp = + veidni motora

Regulāras izteiksmes - ir veidne + dzinēju. Pirmais ir faktiski regulāra izteiksme - JavaScript objekts - regulārajai izteiksmei, otrais - tas veidni izpildītājs, piemērot to līniju. Dzinēji, kas īsteno regulāras izteiksmes katrai programmēšanas valodu, ir atšķirīgi. Un, lai gan ne visi atšķirības ir nozīmīgas, būtu jāpatur prātā, kā arī pārliecinieties, lai rūpīgi pārbaudītu regulāro izteiksmi pirms tā darbību.

Īpašs apzīmējums, rakstot regulāras izteiksmes ir ļoti viegli izmantot, un ļoti efektīvs, bet tas prasa aprūpi, kārtīgums un pacietību no attīstītāja. Ar pierakstā regulārā izteiksme modeļus ir nepieciešams, lai pierastu pie. Tas nav iedoma, tā ir loģika īstenošanas mehānismu «JavaScript regulāras izteiksmes."

regular expression modelis

Atļauts divas iespējas:

VAR expOne = / abc * / i;

VAR expTwo = RegExp ( "ABC *", "i");

Parasti to izmanto pirmo metodi. Otrajā gadījumā, pēdiņām, jo izmantot rakstzīmi '\', tā ir izbēguši ar vispārējiem noteikumiem.

'I' - karodziņš, kas norāda "lielo burtu". Jūs varat izmantot arī karogi "g" - «Global Search" un "m" - vairāku līniju meklēšanu.

Simbols "/", lai norādītu, kopīgi izmantot veidni.

Sākums un beigas regulāras izteiksmes

Ar "^" definē raksturs (s), no kura sākt regulāru izteiksmi, un "$", nosaka, kuru raksturs (-iem) jābūt beigās. Jums nevajadzētu eksperimentēt ar tām iekšpusē izteiksmi, kur tie ir atšķirīga nozīme.

Tā, piemēram,

VAR eRegExp = jauns RegExp (cRegExp, "i");

VaR cRegRes = '';

VAR sTest = 'AbcZ';

ja (eRegExp.test (sTest)) {

cRegRes + = '- Jā ";

} Else {

cRegRes + = '- nē ";

}

VAR dTestLine = document.getElementById ( "scTestLine ');

dTestLine.innerHTML = 'Expression /' + cRegExp + "/ par rindā" '+ sTest +' " '+ cRegRes.

Elements "scTestLine" rezultātā (cRegExp mainīgais ir atbilstoša nozīme):

izteiksme / ^ AbcZ $ / par virkni "abcz" - jā

Ja noņemat "i" karogu, rezultāts ir šāds:

izteiksme / ^ AbcZ $ / par virkni "abcz" - nav

Saturs regulāras izteiksmes

Regulāra izteiksme ir rakstzīmju virkne, kas ir priekšmets meklēšanu. Izteiksme / qwerty / meklē ierakstu tas ir secība:

izteiksme / qwerty / uz virkni "qwerty" - jā

izteiksme / qwerty / uz virkni "123qwerty456" - jā

Ar '^' izmaiņas izteiksmes:

izteiksme / ^ qwerty / uz virkni "123qwerty456" - nav

izteiksme / ^ qwerty / uz virkni "qwerty456" - jā

Līdzīgi, lai beigās līnijas simbolu. Regulāras izteiksmes ļauj konsekvences, piemēram, [az], [AZ], [0-9] - visi alfabēta burti šajā gadījumā vai skaitļiem. Krievijas vēstules arī var tikt izmantoti, tomēr vajadzētu pievērst uzmanību kodējumu virknes (kas tiek prasīta, ka tiek prasīta) un lapas. Bieži krievu burtus, kā arī speciālās rakstzīmes, tas ir vēlams noteikt kodus.

Veidojot regulāra izteiksme var norādīt opcijas klātbūtni dažu simbolu konkrētajā vietā, ar to skaits dots šāds: "*" = 0 atkārtošanās vai vairāk reizes; '+' = 1 vai vairākas atkārtošana reizes; {1} ir tāds pats, kā "+"; {N} = atkārtošana tieši n reizes; {N,} = n atkārtošana reizes vai vairāk; {N, m} = atkārtošana no n līdz m reizes.

Izmantojot iekavās, varat norādīt rakstzīmju kopu iespējas. Tas izskatās šādi. [Abcd] = [reklāmas] = ik pēc četriem simbols: "a", "b", "c" vai "d". Jūs varat noteikts citādi. Jebkura raksturs, izņemot tos, kas norādīti komplektā: [^ ABCD] = jebkuru rakstzīmi, kas nav "a", "b", "c" vai "d". "?" Tas norāda, ka šajā brīdī simbols nevar būt. '.' norāda, jebkuru rakstzīmi, izņemot norādot newline. Šī "\ n" "\ r", "\ u2028" vai "\ u2029". Izteiciens "\ s * | \ S * '=' [\ s | \ S] *" nozīmē meklēt jebkuru rakstzīmi, ieskaitot rindiņās.

Vienkāršoti versijas regulāras izteiksmes

Izteiciens "[\ s | \ S] * '- meklēt telpa, vai tā trūkums, tas ir viss, kas ir uz līnijas. Šajā gadījumā, simbols "\ s" norāda atstarpi, un "\ S" - viņa prombūtnes laikā.

Tāpat jūs varat izmantot "\ d", lai meklētu aiz cipariem, un "\ D" atrast nav skaitliska raksturs. Apzīmējumi "\ f", "r" un "\ n 'atbilst uz formu-barības, rakstatgriezi un line-barību.

Cilne raksturs - "\ t", vertikālā - "\ v '. Apzīmējumu "\ w" konstatē kādu latīņu alfabēta rakstzīmes (burti, cipari un pasvītrojuma zīmi) = [A-Za-z0-9_].

Apzīmējums "\ W 'ir vienāds ar [^ A-Za-z0-9_]. Tas nozīmē jebkuru rakstzīmi, kas nav alfabēta burtu, ciparu vai "_".

Meklēt raksturs '\ 0' = meklēšanas NUL rakstzīmēm. Meklēt '\ xHH "vai" \ uhhhh "attiecīgi = Meklēt rakstzīmju kods vai hhhh HH. H - heksadecimālo ciparu.

Ieteicamais formulējums un kodēšana regulāras izteiksmes

Jebkura regulāra izteiksme ir svarīgi rūpīgi pārbaudīta uz dažādām versijām rindās.

Ar pieredzi veidojot regulārās izteiksmes kļūdas būs mazāks, bet tomēr vienmēr jāpatur prātā, ka viņu pašu zināšanas par noteikumiem rakstiski regulārās izteiksmes nevar būt taisnība, jo īpaši tad, kad "regulārās sezonas" tiek nodota no vienas valodas uz otru.

Izvēle starp klasisko (precīza norāde) un vienkāršota versija regulāras izteiksmes, tas ir labāk dot priekšroku pirmajam. Galu galā, klasiku vienmēr ir skaidri norādīts, ka gan meklēja. Ja regulāra izteiksme vai meklēšanas virkne ir krievu burti, vajadzētu novest pie atsevišķu kodē visām līnijām un lapu, kurā darbojas atrast JavaScript kodu veic regulāru izteiksmi.

Ja ir raksturs apstrāde, kas nav latīņu alfabēts, ir lietderīgi apsvērt norādi par rakstzīmju kodu, nevis pašiem burtiem.

Īstenojot meklēšanas algoritmus JavaScript regulārā izteiksme ir rūpīgi jāpārbauda. Tas ir īpaši svarīgi, lai kontrolētu rakstzīmju kodējumu.

Ar iekavās regulāro izteiksmi

Par iekavās definēt iespējas simbolu, kam ir jābūt vai var nebūt noteiktā vietā, un apaļas - secības variantus. Bet tas ir tikai vispārējs noteikums. No tā nav izņēmums, bet ir dažādas lietojumprogrammas.

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

VAR eRegExp = jauns RegExp (cRegExp, "i");

VaR cRegRes = '';

VAR sTest = picture.jpg;

ja (eRegExp.test (sTest)) {

cRegRes + = '- Jā ";

} Else {

cRegRes + = '- nē ";

}

rezultāti:

/[az]*.(png|jpg|gif)/ izteiksme līnijas "picture.jpg" - jā

/^[ad][az]*.(png|jpg|gif)/ izteiksme "picture.jpg" līniju - Nr

/^[ad][az]*.(png|jpg|gif)/ izteiksme līnijas "apicture.jpg" - jā

/^[ad][az]*.(png|jpg|gif)/ izteiksme "apicture.jg" līniju - Nr

Jāatzīmē, ka visi, tad zvaigznīte var būt nulle reizes. Tas nozīmē, ka "regulārā sezona" varētu strādāt neparedzētos veidos vismaz.

Pārbaudiet RegExp - testēšanas e-pastu

Pie regulāras JavaScript izteiksme iegūta divas metodes, testu un exec, un to var izmantot ar līniju objektiem (virkne) savās metodēs (funkcijas): meklēšanas, split, nomainīt un spēles.

testēšanas metode ir jau pierādīts, tas ļauj jums pārbaudīt pareizību regulāras izteiksmes. Metode Rezultāts: patiess / nepatiess.

Apsveriet šādus JavaScript regulāras izteiksmes. Pārbaudiet e-pastu no skaita ", grūti, bet noteikti":

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

virkne VAR sTest ='SlavaChip@sci.by "dod taisnība, tad tas ir virkne ir pareizā e-pasta adrese. Revīzija tika veikta ar eRegExp.test (sTest).

Praktiskais pielietojums: ārstēšana e-pastu

Exec metode paredz izejas masīva, zvanu:

VAR aresult = eRegExp.exec (sTest);

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

Tas dod šādu rezultātu:

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

Citas metodes strādā līdzīgi. Ir ieteicams, lai pārbaudītu tos pats. Attīstība un izmantošana regulāras izteiksmes, ir vēlams, lai strādātu praksē, kods kopēšana ne vienmēr ir ieteicams šeit.

Popular "regulārās sezonas"

JavaScript regulāra izteiksme dota e-pasta, ne tikai ir daudz vairāk viegli iespējas. Piemēram, /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Tomēr šis iemiesojums ņem vērā ne visas iemiesojumu uz e-pasta adresi ierakstu.

Protams, jums ir apskatīt pieredzi kolēģiem, lai analizētu, kā to ierosināja, pirms izstrādāt savu uz JavaScript regulārām izteiksmēm. Bet ir dažas grūtības. Mums nevajadzētu aizmirst, ka a JavaScript regulāras izteiksmes (Piemēram, ja kopējot) var dublēt pamatprasībām rakstzīmes: '\', '/' vai citāti. Tas novedīs pie kļūdas, kuru jūs varat meklēt ilgi.

Ir svarīgi ņemt vērā parasto "cilvēcisko dimensiju." Pēc oficiālas JavaScript regulāras izteiksmes, lai tālrunis, kas var būt apmeklētājs (persona), tā tiek sniegta dažādos veidos: 123-45-67, (29) 1234567, 80291234567 vai 375291234567. Un tas viss ir tas pats numurs. Pareizrakstības vairākus modeļus ne vienmēr ir pieņemama, un stingra fiksācija noteikumiem rakstīšanai ciparus var radīt nevajadzīgu diskomfortu vai ierobežojumi. Variants / ^ \ d [\ d \ (\) \ -] {4,14} \ d $ / i ir piemērots vairumā gadījumu jūs pārbaudīt savu tālruņa numuru.

Ja jūs vēlaties padarīt JavaScript regulāras izteiksmes, tikai ciparus pārbaudes, pat tik vienkāršs gadījums prasa skaidrojumu. Būtu jāuzskata vesels skaitlis vai dalītas, zinātnisko notāciju, vai normāls, pozitīvs vai negatīvs skaitlis. Jūs varat ņemt vērā arī to, ka pastāv valūtas simbolu, ciparu skaits aiz komata un sadalījumu visa daļas numura triāde.

Izteiksme / ^ \ d + $ / i pārbaudīt tikai skaitļus un /^\d+\.\d+$/i izteiksme ļauj izmantot punktu, lai norādītu frakcionēti daļu skaita.

JavaScript pārbaudes regulārās izteiksmes var izmantot, lai norādītu formātu cieto ievades datiem, kas ir būtiski, jo īpaši, ja ievadot profili, pases datus, un juridiskās adreses t. D.

Pārbaudiet datumus - vienkārši kompleksam

Apsveriet vēl JavaScript regulāras izteiksmes. Piemēri līdz šim, kā skaitam, tālruņa numuru pārstāv izvēle starp stingrību un elastību. Notikuma datums - viens no būtiskiem datiem, kas bieži ir jālieto. Bet nosaka ieguldījumu konkrētā formātā: "dd-mm-gggg" vai "d.m.gg" bieži noved pie klientu neapmierinātību. Pāreja no ievades laukā dienas līdz mēnesim, pilna klasisko HTML formas, nevar notikt, ja ievadāt tikai vienu ciparu, un otrā ieejas var būt grūti. Piemēram, šajā jomā dienā tā tika ieviesta 3, un nākamais numurs 2 neaizstāj pirmais, un ir attiecināms uz viņas 32, kas, protams, radīs neērtības.

Efektivitāte un ērtības regulārās izteiksmes būtiski atkarīga no vispārējo būvniecību dialogu ar apmeklētāju. Vienā gadījumā, lai norādītu datumu, kad tas ir ieteicams izmantot vienu ievades lauku formas, otrā gadījumā ir nepieciešams nodrošināt, lai dažādās jomās par dienu, mēnesi un gadu. Bet tad jebkādi papildu "izmaksas, kods", lai pārbaudītu garais gads, mēnešu skaitu, dienu skaitu, kas tiem.

Meklēt un aizstāt, regulāras izteiksmes atmiņu

JavaScript aizstāt (regulāras izteiksmes), izmantojot metodi String objektu, un ļauj mums, lai atrastu vērtību un mainīt to nekavējoties. Tas ir noderīgi, lai izlabotu drukas kļūdas, rediģēt saturu veidlapas laukus un, lai pārveidotu datus no vienas prezentācijas formāta uz citu.

VAR cRegExp = / ([a-z] +) \ s ([a-z] +) \ s ([a-z] +) / i; // meklējot trīs "mainīgie"

VAR sTest = 'šis raksts ir labs! ";
VAR cRegRes = sTest.replace (cRegExp, "$ 2, $ 3, $ 1");

VAR dTestLine = document.getElementById ( "scTestLine ');

dTestLine.innerHTML = 'izteiciens "+ cRegExp +" attiecībā uz virkni "" + sTest +' "turn:" + cRegRes;

rezultāts:

ekspresijas / ([az] +) \ s ([az] +) \ s ([az] +) / i līnijā "šis raksts ir labi!" out: raksts ir labs, tas!

Veicot katru iekavām pāri saglabā rezultātu par "mainīgais" $ n, kur n - kronšteinu pāru ($ 1, $ 2, ...). Atšķirībā no parasto, šeit mainīgs numerācija ir 1, nav 0.

Vispārēji ieteikumi

Regulāra izteiksme vienkāršo kodu, bet laiks, lai izstrādātu tas bieži vien padara starpību. Jūs varat sākt ar vienkāršu dizainu un tad veic, lai apvienotu spēkā sarežģītākas. Jūs varat izmantot dažādus tiešsaistes pakalpojumus, lai pārbaudītu regulāras izteiksmes vai īpašos vietējos instrumentus.

Labākais risinājums būs izveidot savu bibliotēku regulārās izteiksmes un savus līdzekļus, lai pārbaudītu jaunu attīstību. Tas ir labākais veids, kā apvienot pieredzi un iemācīties ātri izveidot drošu un ērtu dizainu.

Izmantojot atkārtošanās rakstzīmju un stīgas, tas ir, īpašas rakstzīmes '*', '+' un lencēm, norādot, atkārtojumu skaits, būtu jāvadās pēc principiem vienkāršības un lietderības. Ir svarīgi saprast, ka regulāras izteiksmes sākumā savu darbu, un, lai iegūtu rezultāts ir pilnībā jaudu dzinēja pārlūku izmanto. Ne visām valodām ir vienāds ar JavaScript. Katrs pārlūks var celt savu personisko izvēli interpretācijā regulārās izteiksmes.

Saderība ir ne tikai lapas un stila lapas, lai regulārām izteiksmēm, tas ir arī jādara. Lapa izmanto JavaScript, var uzskatīt par labi funkcionējoša tikai tad, ja tā ir veiksmīgi strādājis pie dažādiem pārlūkiem.

JavaScript String un RegExp

Ar labo darbu pie klienta līmenī, tas ir, apmeklētāja pārlūku JavaScript, tas prasa lielas prasmes attīstītājs. pietiekami ilgi, jums ir iespēja atkļūdot JavaScript kods pārlūka pašu līdzekļiem vai ar kuru palīdzību trešo pušu paplašinājumi, koda redaktori, neatkarīgu programmas.

Tomēr ne visos gadījumos, atkļūdotājs var apstrādāt un sniegt labu atbalstu attīstītājs, ātra kļūdu atklāšanai, atklāt vājās vietas. Laikā, kad dators ir vērsta uz aprēķiniem, kas tālā pagātnē. Tagad, īpašu uzmanību pievērst informācijas un līniju objekti nāk spēlēt nozīmīgu lomu. No tērauda stīgas skaits, un to patieso būtību tie izpaužas tikai īstajā laikā un īstajā vietā.

Regulāras izteiksmes pastiprināt iespēju līnijas, bet prasa pašcieņu. Debug RegExp savā darbā, pat tad, ja tas ir iespējams simulēt, ne pārāk interesanta ideja.

Izpratne struktūru un loģiku regexp objektu, kas nozīmē objektu String, sintaksi un semantiku JavaScript - patiesu drošu kodu, stabilu darbību katras lapas un vietnes kopumā.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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