KomputilojProgramado

Javascript, regula esprimo ekzemploj, kontrolu Regula Esprimo

Antaŭ la alveno de hipertekstaj lingvo, sed pli ĝuste, ĝis evidentiĝis, ke ni ne nur rigardi, sed por fari tion sub certaj kondiĉoj, en aparta loko, sub la ŝanĝita datumoj en la dekstra kvantoj, la kutima serĉo kaj anstataŭigi funkcio organizita ajna kompleksa programisto. Krei ĉefverkoj de arto serĉo en programlingvoj kaj datumbazo elstaris en la formoj de muestreo kondiĉoj, ekipita per stokita proceduroj, ekigiloj kaj aliaj rimedoj de dika specimeno rilata informo spurojn. La aspekto de la regula esprimo por la revolucio ne kondukas, sed utila kaj oportuna maniero por trovi kaj anstataŭi informon. Ekzemple, regula esprimoj JavaScript retpoŝto signife simpligi registriĝo de vizitantoj, ne ŝargi la retejo sendas mesaĝojn al neekzistanta adresoj.

Diri ke JavaScript regula esprimo estas multe pli bone produmannnyh sekvencoj indexOf () nomas en la kadro de konvencia cikla kaj operatoroj, ne povas ne diri, ke ĝi faris la skriptokodaĵo estas kompakta, sed malmulte komprenebla por la uninitiated, povas esti unusence.

Objekto regulesprimo = + ŝablono motoro

Regulaj esprimoj - estas ŝablono + motoro. La unua estas efektive regula esprimo - JavaScript objekto - la regulesprimo, la dua - tiu ŝablono prezentisto, apliki ĝin al la linio. Motoroj kiuj efektivigas regulajn esprimojn por ĉiu programlingvo estas malsamaj. Kaj kvankam ne ĉiuj diferencoj estas gravaj, ĝi devus konsideri, kaj ankaŭ nepre zorge kontroli la regula esprimo antaŭ ĝia operacio.

Speciala notacio kiam skribas regulajn esprimojn estas sufiĉe facile uzebla kaj tre efika, sed postulas zorgon, pulcritud kaj pacienco de la ellaboranto. Per notacio regula esprimo ŝablonoj bezonas alkutimiĝi al. Ĉi tio ne estas iu pasaĝero, ĝi estas la logiko de mekanismo por efektivigi «JavaScript regulaj esprimoj."

regula esprimo padrono

Permesita du ebloj:

var expOne = / abc * / i;

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

Ĝi tipe uzis la unuan metodon. En la dua kazo, la citiloj, ĉar uzi la karakteron '\', ĝi devas esti eskapinta de la ĝeneralaj reguloj.

"Mi '- flago indikas" kazo sensenta ". Vi povas ankaŭ uzi flagojn 'g' - «Global Serĉu 'kaj' m '- a plurliniaj serĉo.

La simbolo '/' por indiki komunan uzi ŝablono.

La komenco kaj fino de la regula esprimo

La '^' difinas la karakteron (j) de kiu komenci la regulan esprimon, kaj la '$' determinas kiun karaktero (j) devas esti je la fino. Vi ne devus sperti kun ili ene esprimo, kie ili havas malsaman signifon.

Ekzemple,

var eRegExp = nova regulesprimo (cRegExp: i ');

var cRegRes = '';

var sTest = 'AbcZ';

se (eRegExp.test (sTest)) {

cRegRes + = '- Jes';

} Alie {

cRegRes + = '- ne, ne;

}

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

dTestLine.innerHTML = 'Esprimo /' + cRegExp + '/ por vico "' + sTest + '"' + cRegRes.

La elemento 'scTestLine' rezultos (cRegExp variablo havas respondan signifon):

esprimo / ^ AbcZ $ / por la kordo "abcz" - Jes

Se vi forigas la 'i' flago, la rezulto estas:

esprimo / ^ AbcZ $ / por la kordo "abcz" - Neniu

La enhavo de regula esprimo

Regula esprimo estas vico de signoj, kiu estas la temo de la serĉo. Esprimo / qwerty / serĉanta Navigacio tiu sinsekvo:

esprimo / qwerty / por kordo "qwerty" - Jes

esprimo / qwerty / por kordo "123qwerty456" - Jes

La '^' ŝanĝoj estas esprimoj:

esprimo / ^ QWERTY / por kordo "123qwerty456" - Neniu

esprimo / ^ QWERTY / por kordo "qwerty456" - Jes

Simile, por la fino de linio simbolo. Regulaj esprimoj enkalkulas konsistencon: ekzemple, [az], [AZ], [0-9] - ĉiuj literoj de la alfabeto en ĉi tiu kazo aŭ figuroj. Rusaj literoj ankaŭ uzebla, sed devas atenti la kodado de kordoj (kiu estas serĉita kiu serĉis) kaj paĝoj. Ofte rusa literoj, tiel kiel specialaj karakteroj, ĝi estas preferinda por agordi kodoj.

Kiam formante regulan esprimon povas specifi eblojn por la ĉeesto de iuj simboloj en apartan lokon, kaj la al nombro donita jene: '*' = 0 ripeto aŭ pli fojojn; '+' = 1 aŭ pli ripeto fojojn; {1} estas la sama, kiel '+'; {N} = ripeto ĝuste n fojojn; {N,} = n ripeto fojojn aŭ pli; {N, m} = ripeto de n ĝis m fojojn.

Uzante krampoj, vi povas specifi la signaron de ebloj. Aspektas tiel. [ABCD] = [ad] = ĉiun kvaran simbolon: 'a', 'b', 'c' aŭ 'd'. Vi povas specifi alie. Ajna karaktero krom tiuj precizigita en la aro: [^ abcd] = ajnan karakteron krom 'a', 'b', 'c' aŭ 'd'. '? Hinda kiu ĉe tiu punkto la simbolo ne povas esti. '.' specifas neniun karakteron krom indiki la lino. Tiu '\ n', '\ r', '\ u2028' aŭ '\ u2029'. La esprimo '\ s * | \ S *' = '[\ s | \ S] *' signifas la serĉon por ajna karaktero, inkluzive linifinojn.

Simpligita versiojn de regula esprimo

La esprimo '[\ s | \ S] *' - serĉo spaco, aŭ manko de gxi, tio estas cxio, sur la linio. En ĉi tiu kazo, la simbolo '\ s' indikas spaco, kaj '\ S' - lia foresto.

Simile, oni povas uzi '\ d' por serĉi la decimaloj, kaj '\ D'trovi ne-nombra karaktero. Notacio '\ f', 'r' kaj '\ n' respondas al la formo-feed, tirilo kaj linio-fonto.

La langeto karaktero - '\ t', vertikala - '\ v'. La designación '\ w' trovas ajnan latina alfabeto karaktero (literoj, ciferoj kaj la substreko markon) = [A-Za-z0-9_].

La designación '\ W' estas ekvivalenta al [^ A-Za-z0-9_]. Tio signifas ajnan karakteron kiu ne estas litero de la alfabeto, nombro, aŭ '_'.

Serĉu karaktero '\ 0' = serĉo NUL karakteroj. Serĉu '\ xHH' aŭ '\ uHHHH' = Serĉu karaktero kodo aŭ HHHH HH respektive. H - deksesuma cifero.

Rekomendita vortigon kaj kodigo de regula esprimo

Ajna regula esprimo Gravas zorge provis en malsamaj versioj de vicoj.

Kun la sperto de kreo de regula esprimo eraro estos pli malgranda, sed tamen devas ĉiam esti gardata en menso ke sia propra scio de la reguloj de skribado regulaj esprimoj ne povas esti vera, precipe kiam la "regula sezono" estas trapasita de unu lingvo al alia.

Elektante inter klasika (ĝusta indiko) kaj simpligita versio de regula esprimo, estas pli bone preferas la unua. Finfine, en la klasikaj ĉiam klare indikis ke ambaŭ serĉis. Se la regula esprimo aŭ serĉo ĉeno havas rusa literoj, devas konduki al ununura kodoprezenton ĉiuj linioj kaj la paĝo sur kiu funkcias trovi JavaScript-kodo realigas regulajn esprimo.

Kiam estas karaktero prilaborado, ne-latina alfabeto, ĝi havas sencon konsideri indiko de la karaktero kodoj, ne la karakteroj mem.

Kiam efektiviganta la serĉo algoritmoj en JavaScript regula esprimo devas esti zorge kontrolata. Ĝi estas aparte grava por kontroli la karakteron kodado.

La krampoj en la regula esprimo

La krampoj difini la opciojn por la simbolo, kiu devas esti aŭ ne esti en iu loko kaj ronda - sinsekvo variantoj. Sed tio estas nur ĝenerala regulo. El tio ne estas escepto, sed ekzistas vasta gamo de aplikoj.

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

var eRegExp = nova regulesprimo (cRegExp: i ');

var cRegRes = '';

var sTest = 'picture.jpg';

se (eRegExp.test (sTest)) {

cRegRes + = '- Jes';

} Alie {

cRegRes + = '- ne, ne;

}

rezultoj:

/[az]*.(png|jpg|gif)/ esprimo por la linio "picture.jpg" - Jes

/^[ad][az]*.(png|jpg|gif)/ esprimo por "picture.jpg" linio - Neniu

/^[ad][az]*.(png|jpg|gif)/ esprimo por la linio "apicture.jpg" - Jes

/^[ad][az]*.(png|jpg|gif)/ esprimo por "apicture.jg" linio - Neniu

Ni notu, ke ĉiuj, do asterisko povas ĉeesti nul fojojn. Tio signifas ke la "regula sezono" povus labori en neatenditaj manieroj minimume.

Kontrolu regulesprimo - testado retpoŝto

Ĉe regula JavaScript esprimo akiris du metodoj, testo kaj exec, kaj povas esti uzataj en linioj objektoj (String) en siaj metodoj (funkcioj): serĉo, split, anstataŭi kaj matĉo.

testo metodo jam estis pruvita, ĝi ebligas al vi kontroli la ĝustecon de la regula esprimo. Metodo Rezulto: vera / malvera.

Konsideru la sekvan JavaScript regulaj esprimoj. Kontrolu retpoŝton de la nombro de "malfacila, sed certe":

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

kordo var sTest ='SlavaChip@sci.by 'donas vera, tiam ekzistas tiu ĉeno estas la ĝusta retpoŝta-adreso. La auditoría estis kondukita fare eRegExp.test (sTest).

Praktika uzo: traktado de e-poŝto

Exec metodo provizas la eligo tabelo, voki:

var aResult = eRegExp.exec (sTest);

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

Ĝi donas la sekvan rezulton:

9
Slava.Chip@sci.by
Slava.Chip
Slava.Chip
.Chip
nedefinita
sci.by
nedefinita
sci.by
scienco.

Aliaj metodoj funkcias simile. Oni rekomendas kontroli ilin vi mem. Evoluo kaj uzo de regulaj esprimoj, estas dezirinde labori praktike, la kodo kopiado ne ĉiam konsilinda tie.

Popularaj "regula sezono"

JavaScript regula esprimo donita al retpoŝto ne nur estas multaj pli facilaj ebloj. Ekzemple, /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Tamen, ĉi tiu personigo enkalkulas ne ĉiuj enkorpiĝoj de la retadreso rekordon.

Kompreneble, vi devas vidi la sperto de kolegoj, por analizi kiel ilia proponita antaŭe por desegni sian propran sur JavaScript regulaj esprimoj. Sed estas iuj malfacilaĵoj. Ni ne forgesas ke JavaScript regulaj esprimoj (ekzemploj de kiam kopiado) povas duplikati la esenca karakteroj: '\', '/' aŭ citiloj. Ĉi tio kondukas al eraro, kiun vi povas serĉi longe.

Gravas konsideri la kutiman "homa dimensio". Post formala JavaScript regula esprimo por la telefono, kiu eble estas la vizitanto (persono), ĝi donas de malsamaj manieroj: 123-45-67, (29) 1234567, 80291234567 aŭ 375291234567. Kaj ĝi estas ĉiuj la sama nombro. Literumas multoblajn ŝablonoj ne ĉiam akceptebla, kaj rigida fijación de la reguloj por skribi nombrojn povas krei nenecesan malkomforto aŭ limigoj. Opcio / ^ \ d [\ d \ (\) \ -] {4,14} \ d $ / i taŭgas por plej multaj kazoj vi kontrolu vian telefonnumeron.

Se vi volas fari JavaScript regulaj esprimoj, nur ciferoj ĉekojn, eĉ tia simpla kazo postulas klarigon. Ĝi devus esti konsiderata entjero aŭ frakcia, scienca skribmaniero, aŭ normala, pozitiva aŭ negativa nombro. Vi povas ankaŭ konsideri la ekziston de la valuto simbolo, la nombro de ciferoj post la dekuma punkto kaj la divido de la tuta parto de la nombro de la triada.

Esprimo / ^ \ d + $ / i kontrolas nur numerojn kaj /^\d+\.\d+$/i esprimo permesas la uzon de punkto por indiki la frakcia parto de la nombro.

En JavaScript kontrolanta regulaj esprimoj povas esti uzata por indiki la formaton de la malfacila enigaĵo, kio estas grava, aparte al la eniri al profiloj, pasporto datumojn, kaj juraj adresoj t. D.

Kontrolu la datojn - simpla por la kompleksaj

Konsideru alian JavaScript regulaj esprimoj. Ekzemploj ĝisdata, kiel por la nombro de telefonnumeroj reprezentas elekton inter rigideco kaj fleksebleco. Dato de okazaĵo - unu el la esencaj datumoj, kiu ofte devas esti administrita. Sed fiksinte la enigo en specifa formato: "tt-mm-jjjj 'aŭ' d.m.gg 'ofte kondukas al kliento malkontento. La transiro de la enigo kampo de la tago-al-monato, plena de klasika HTML-formo, ne okazos kiam vi eniras nur unu cifero, kaj la dua eniro povas esti malfacila. Ekzemple, en la kampo de la tago estis enkondukita 3 kaj la sekva numero 2 ne anstataŭas la unua, kaj atribuas al ŝi 32, kiu, kompreneble, kaŭzos ĝeno.

Efikeco kaj komforto de regulaj esprimoj esence dependas de la ĝenerala konstruo de dialogo kun la vizitanto. En unu kazo, por indiki la daton estas rekomendite uzi unu enmetkampo de la formo, en la alia kazo oni devas provizi por la diversaj kampoj por tago, monato kaj jaro. Sed tiam ajna aldona "kostoj de kodo" por kontroli la superjaro, la nombro de monatoj, la nombro de tagoj en ili.

Serĉi kaj anstataŭigi, regula esprimo memoro

JavaScript anstataŭigi (regulaj esprimoj) uzante la metodo de la String objekto, kaj permesas al ni trovi la valoron kaj ŝanĝi ĝin tuj. Tio estas utila por korekti tajpado eraroj, redakti la enhavon de la formo kampoj kaj por konverto datumoj de unu prezento formato al alia.

var cRegExp = / ([a-z] +) \ s ([a-z] +) \ s ([a-z] +) / i; // kiam serĉanta Tri 'variabloj'

var sTest = 'ĉi artikolo estas bona!';
var cRegRes = sTest.replace (cRegExp "$ 2, $ 3, $ 1");

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

dTestLine.innerHTML = 'esprimo' + cRegExp + 'por la kordo "' + sTest + '" turni:' + cRegRes;

rezulto:

esprimo / ([az] +) \ s ([az] +) \ s ([az] +) / i por la linio "tiu artikolo estas bona!" ekstere: la artikolo estas bona, ĉi tiu!

Kiam plenumante ĉiu paro de krampoj stokas la rezulton en la 'variablo' $ n, kie n - nombro de krampo paroj ($ 1, $ 2, ...). Kontraste konvencia, jen variablo kalkulado estas 1, ne 0.

Ĝenerala rekomendoj

Regula esprimo simpligas la kodo, sed la tempo por evoluigi gxin ofte faras diferencon. Vi povas komenci kun simplaj dezajnoj kaj poste farita por kombini en pli kompleksaj esprimoj. Vi povas uzi diversajn enreta servoj por testi regulaj esprimoj aŭ specialaj lokaj iloj.

La plej bona elekto kreos sian propran bibliotekon de regulaj esprimoj kaj propraj iloj por testi novajn disvolviĝojn. Ĉi tiu estas la plej bona maniero por solidigi la sperton kaj lerni kiel rapide konstrui fidinda kaj komforta dezajno.

Uzante ripeto de karakteroj kaj kordoj, te, supersignoj '*', '+' kaj krampoj, indikante la numeron de ripetoj estu gvidataj de la principoj de simpleco kaj oportuneco. Gravas rimarki ke regula esprimo al la komenco de lia laboro, kaj por ricevi la rezulto estas tute en la potenco de la motoro uzita de la retumilo. Ne ĉiuj lingvoj estas ekvivalenta al JavaScript. Ĉiu retumilo alkondukadu siajn personajn preferojn en la interpreto de regulaj esprimoj.

Kongrueco ne estas nur paĝojn kaj folioj de stilo, por regulaj esprimoj, ĝi ankaŭ devas vidi. La paĝo uzas JavaScript, povas esti konsiderata bone funkcias nur kiam ĝi sukcese laboris pri diversaj retumiloj.

JavaScript, String kaj regulesprimo

Por la dekstra laboron ĉe la kliento nivelo, tio estas, en la vizitinto retumilo en JavaScript, tio postulas altan kapablojn de la ellaboranto. Sufiĉe longe vi havas la ŝancon elpurigi JavaScript-kodo retumilo propran monon aŭ kun helpo de triaj pligrandigoj, kodo eldonistoj, sendependaj programoj.

Tamen, ne ĉiuj kazoj, la erarserĉilo povas pritrakti kaj provizas bonan subtenon por la ellaboranto, rapida eraro detekto, detekti bottlenecks. La tempoj kiam la komputilo estis temigis la kalkuloj, en la malproksima pasinteco. Nun, pagi specialan atenton al informoj kaj linio objektoj venis ludi signifan rolon. La nombro de ŝtalo kordoj, kaj ilia vera naturo ili elmontras nur ĉe la ĝusta tempo kaj ĝusta loko.

Regulaj esprimoj plifortigi la eblecon de linioj, sed postulas mem respekto. Debug regulesprimo en lia verko, eĉ se ĝi estas ebla por simuli, ne tro interesan ideon.

Komprenante la strukturon kaj logikon de la regulesprimo objekto, kio signifas objekton String, la sintakso kaj semantiko de JavaScript - vera sekura kaj sekura kodo, la stabilan operacion de ĉiu paĝo kaj la retejo kiel tuto.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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