ÒdinatèPwogram

JavaScript, egzanp ekspresyon regilye, tcheke regilye Ekspresyon

Anvan avènement de lang ipèrtèks, men pito, pou jouk li te vin klè ke nou pa ta dwe jis gade, men yo fè sa selon sèten kondisyon, nan yon kote ki an patikilye, anba done yo chanje nan kantite yo dwat, rechèch la abityèl epi ranplase fonksyon òganize nenpòt sofistike pwogramè. Kreye chèf nan rechèch atizay nan lang programmation, ak baz done èksele nan fòm yo nan kondisyon echantiyon, te ekipe ak pwosedi estoke, deklanchman ak lòt mwayen pou ankonbran echantiyon tren enfòmasyon relasyon. Aparans nan ekspresyon ki regilye nan revolisyon an pa t 'mennen, men li te yon fason itil ak pratik jwenn epi ranplase enfòmasyon. Pou egzanp, ekspresyon regilye JavaScript imel siyifikativman senplifye enskripsyon nan vizitè, pa chaje sit entènèt la voye pou bay mesaj pou adrès inègzistan.

Pou di ke yon ekspresyon regilye JavaScript se pi bon sekans produmannnyh indexOf () rele nan ankadreman an nan siklik konvansyonèl ak operatè yo, pa kapab, men di ke li te fè kòd la script se kontra enfòmèl ant, men yon ti konpreyansib pwofàn la, yo ka anbigwite.

Objè regexp = + modèl motè

ekspresyon regilye - se yon modèl + motè. Premye a se aktyèlman yon ekspresyon regilye - JavaScript obekt - regexp la, dezyèm lan - yon sèn modèl, aplike li nan liy. Engines ki aplike ekspresyon regilye pou chak lang programmation yo diferan. Ak byenke se pa tout diferans ki genyen yo enpòtan, li ta dwe transmèt nan tèt ou, menm jan tou asire w ke ou ak anpil atansyon tcheke ekspresyon ki regilye anvan operasyon li yo.

Yon notasyon espesyal lè li ap ekri ekspresyon regilye se byen fasil yo sèvi ak ak afè efikas, men li mande pou swen, òdonans ak pasyans soti nan pwomotè la. Pa notasyon modèl ekspresyon regilye bezwen jwenn itilize. Sa a se pa yon kapris, li se lojik nan yon mekanis pou mete ann aplikasyon «JavaScript ekspresyon regilye."

regilye modèl ekspresyon

Nou pèmèt yo de opsyon:

var expOne = / abc * / m;

var expTwo = regexp ( "abc *", "mwen");

Tipikman li itilize metòd la an premye. Nan ka, dezyèm lan, quotes yo, paske yo sèvi ak pèsonaj la '\', li dwe chape pa règleman yo jeneral.

'Mwen - drapo endike "ka bra kwaze". Ou kapab tou itilize 'g' drapo - «Global Search 'ak' m '- yon rechèch milti-liy.

senbòl nan '/' pou montre pou komen nan sèvi ak yon modèl.

Nan konmansman an ak nan fen ekspresyon ki regilye

'^' Defini pèsonaj la a (yo) ki soti nan ki yo kòmanse ekspresyon ki regilye, ak '$ a' detèmine ki karaktè (yo) dwe nan fen an. Ou pa ta dwe eksperyans ak yo andedan yon ekspresyon, kote yo gen yon siyifikasyon diferan.

Pou egzanp,

var eRegExp = nouvo regexp (cRegExp, 'mwen');

var cRegRes = '';

var sTest = 'AbcZ';

si (eRegExp.test (sTest)) {

cRegRes + = '- Wi';

} Lòt Bagay {

cRegRes + = '- Pa gen';

}

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

dTestLine.innerHTML = 'Ekspresyon /' + cRegExp + '/ pou ranje "' + sTest + '"' + cRegRes.

eleman 'scTestLine a', sa pral lakòz (cRegExp varyab gen yon siyifikasyon ki koresponn):

ekspresyon / ^ AbcZ $ / pou fisèl la "abcz" - Wi

Si ou retire 'mwen' drapo a, rezilta a se:

ekspresyon / ^ AbcZ $ / pou fisèl la "abcz" - Pa gen

Sa ki nan yon ekspresyon regilye

Yon ekspresyon regilye se yon sekans nan karaktè, ki se sijè a nan rechèch la. Ekspresyon / kvèrti / kap chèche antre se sekans sa a:

ekspresyon / kvèrti / pou fisèl "kvèrti" - Wi

ekspresyon / kvèrti / pou fisèl "123qwerty456" - Wi

'^' Chanjman yo se ekspresyon:

ekspresyon / ^ kvèrti / pou fisèl "123qwerty456" - Pa gen

ekspresyon / ^ kvèrti / pou fisèl "qwerty456" - Wi

Menm jan tou, pou nan fen senbòl liy. ekspresyon regilye pèmèt pou konsistans: pou egzanp, [az], [AZ], [0-9] - tout lèt yo nan alfabè a nan ka sa a oswa figi. lèt Ris tou ka dwe itilize, men yo ta dwe peye atansyon sou kodaj la nan strings (ki se t'ap chache ki t'ap chache) ak paj. Anpil fwa lèt Ris, osi byen ke karaktè espesyal, li se pi preferab ke mete kòd.

Lè fòme yon ekspresyon regilye ka presize opsyon pou prezans nan senbòl sèten nan yon kote patikilye, ak nimewo yo bay jan sa a: '*' = 0 repetisyon oswa plis fwa; '+' = 1 oswa plis fwa repetisyon; {1} se menm bagay la, kòm '+'; {N} = repetisyon egzakteman N fwa; {N,} = n repetisyon fwa oswa plis; {N, m} = repetisyon nan n Pou m fwa.

Lè l sèvi avèk parantèz, ou ka presize pèsonaj la mete nan opsyon. Li sanble tankou sa a. [ABCD] = [anons] = chak senbòl kat: 'yon', 'b', 'c' oswa 'd'. Ou ka presize otreman. Nenpòt karaktè lòt pase sa yo ki espesifye nan mete nan: [^ ABCD] = nenpòt karaktè lòt pase 'yon', 'b', 'c' oswa 'd'. '? Li endike ke nan pwen sa a senbòl la pa kapab. '.' presize nenpòt karaktè lòt pase ki endike newline la. Sa a \ N ',' \ r ',' \ u2028 'oswa' \ u2029 '. ekspresyon an '\ S * | \ S *' = '[\ S | \ S] *' vle di rechèch la pou nenpòt karaktè, ki gen ladan newlines.

vèsyon senplifye nan ekspresyon regilye

ekspresyon an '[\ S | \ S] *' - espas rechèch, oswa mank ladan l ', se sa ki tout sa ki sou liy lan. Nan ka sa a, senbòl la '\ S' ki endike ke yon espas, ak '\ S' - absans l 'yo.

Menm jan an tou, ou ka itilize '\ d' pou fè rechèch pou chif yo desimal, ak '\ D' jwenn yon karaktè ki pa nimerik. Notasyon '\ f', 'r' ak '\ N' koresponn ak fòm-manje, retounen nan cha ak liy-manje.

Karaktè tab - '\ t', vètikal - '\ v'. deziyasyon a '\ w' jwenn nenpòt Latin pèsonaj alfabè (lèt, chif, ak make la souliye) = [A-ZA-z0-9_].

deziyasyon a '\ W' ki ekivalan a [^ A-Za-z0-9_]. Sa vle di nenpòt ki karaktè ki se pa yon lèt nan alfabè, nimewo, oswa '_' lan.

Search pèsonaj '\ 0' = rechèch nul karaktè. Search '\ xHH' oswa '\ uHHHH' = Search Kòd karaktè oswa Hhhh HH respektivman. H - ekzadesimal chif.

Rekòmande Libellés ak kodaj nan ekspresyon regilye

Nenpòt ekspresyon regilye se yon bagay enpòtan ak anpil atansyon teste sou diferan vèsyon nan ranje.

Ki gen eksperyans la nan kreye yon erè ekspresyon regilye yo pral pi piti, men kanmenm ta dwe toujou kenbe nan tèt ou ke konesans pwòp yo nan règleman yo nan ekri ekspresyon regilye pa kapab vre, espesyalman lè se "regilye sezon an" transfere soti nan yon sèl lang nan yon lòt.

Chwazi ant klasik (endikasyon egzak) ak yon vèsyon senplifye nan yon ekspresyon regilye, li se pi bon pito premye a. Apre yo tout, nan klasik yo se toujou byen klè endike ke tou de t'ap chache. Si ekspresyon ki regilye oswa rechèch fisèl gen lèt, Ris, ta dwe mennen nan yon sèl kodaj tout liy yo ak paj la sou ki opere jwenn JavaScript-Kòd fè yon ekspresyon regilye.

Lè gen yon pwosesis karaktè, ki pa Latin alfabè, li fè sans yo konsidere yon endikasyon de kòd yo karaktè, pa karaktè yo tèt yo.

Lè mete ann aplikasyon algoritm rechèch la nan JavaScript ekspresyon regilye yo ta dwe tcheke avèk anpil prekosyon. Li se patikilyèman enpòtan nan kontwole kodaj nan karaktè.

parantèz yo nan ekspresyon regilye a

parantèz yo defini opsyon yo pou senbòl la, ki dwe oswa ou pa pouvwa dwe nan yon kote ki sèten, ak wonn - varyant sekans. Men, sa a se sèlman yon règ jeneral. Soti nan li pa gen okenn eksepsyon, men gen yon gran varyete aplikasyon pou.

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

var eRegExp = nouvo regexp (cRegExp, 'mwen');

var cRegRes = '';

var sTest = 'picture.jpg';

si (eRegExp.test (sTest)) {

cRegRes + = '- Wi';

} Lòt Bagay {

cRegRes + = '- Pa gen';

}

rezilta:

/[az]*.(png|jpg|gif)/ ekspresyon pou liy "picture.jpg a" - Wi

/^[ad][az]*.(png|jpg|gif)/ ekspresyon pou "picture.jpg" liy - Pa gen

/^[ad][az]*.(png|jpg|gif)/ ekspresyon pou liy "apicture.jpg a" - Wi

/^[ad][az]*.(png|jpg|gif)/ ekspresyon pou "apicture.jg" liy - Pa gen

Li ta dwe te note ke tout, lè sa a yon asterisk ka prezan zewo fwa. Sa vle di ke "regilye sezon an" ta ka travay nan fason inatandi omwen.

Tcheke regexp - tès imel

Nan ekspresyon regilye JavaScript jwenn de metòd, tès yo ak Egzekitif, epi yo ka itilize nan liy objè (fisèl) nan metòd yo (fonksyon): rechèch, fann, ranplase ak matche ak.

te metòd tès deja demontre, li pèmèt ou tcheke Correct nan ekspresyon ki regilye. Metòd Rezilta: vre / fo.

Konsidere JavaScript ekspresyon sa yo regilye. Tcheke imel soti nan nimewo a nan "difisil, men sètènman":

var eRegExp = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s @ "] +) *) | (". + ")) @ ((\ [[0-9] {1,3} \ [0-9] {1,3} \ [0-9] {.. 1,3} \ [0-9] {1,3}]) |. (. ([yon-ZA-Z \ -0-9] + \) + [yon-ZA-Z] {2}) ) $ /;

yon var fisèl sTest ='SlavaChip@sci.by 'bay vre, Lè sa a, se fisèl sa a se kòrèk email-adrès la. Kontwòl kontab la te fèt pa eRegExp.test (sTest).

itilize pratik: tretman nan e-Mail

metòd Egzekitif bay etalaj la pwodiksyon, rele:

var aResult = eRegExp.exec (sTest);

+ AResult.length + '
' '
' cRegRes =;
pou (var mwen = 0; mwen cRegRes + = aResult [mwen] + '
';
}

Li bay rezilta sa a:

9
Slava.Chip@sci.by
Slava.Chip
Slava.Chip
.Chip
endefini
sci.by
endefini
sci.by
Sci.

Lòt metòd travay Menm jan an tou. Li rekòmande yo tcheke yo deyò tèt ou. Devlopman ak pou sèvi ak ekspresyon regilye, li se dezirab nan travay nan pratik, kopye nan kòd se pa toujou yon bon lide isit la.

Popilè "regilye sezon"

ekspresyon JavaScript regilye bay imel pa sèlman gen anpil opsyon plis fasil. Pou egzanp, /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Sepandan, reyalizasyon sa a pran nan kont anbank pa tout reyalizasyon nan dosye a adrès imel.

Natirèlman, ou dwe wè eksperyans nan kòlèg li, yo analize ki jan yo pwopoze anvan nan konsepsyon pwòp yo sou JavaScript ekspresyon regilye. Men, gen kèk difikilte. Nou pa ta dwe bliye ke yon JavaScript ekspresyon regilye (egzanp lè kopye) ka kopi karaktè yo esansyèl: '\', '/' oswa quotes. Sa a ap mennen nan erè, ki ou kapab fè rechèch long.

Li enpòtan pran nan kont abityèl "dimansyon imen an." Apre fòmèl JavaScript ekspresyon regilye pou telefòn lan, ki ka vizitè a (moun), yo bay li nan diferan fason: 123-45-67, (29) 1234567, 80291234567 oswa 375291234567. Ak li nan tout nimewo a menm. Òtograf modèl miltip se pa toujou akseptab, ak rijid determinasyon nan règ yo pou ekri nimewo ka kreye malèz nesesè oswa restriksyon sa yo. Opsyon / ^ \ d [\ d \ (\) \ -] {4,14} \ d $ / m se apwopriye pou pifò ka ou tcheke nimewo telefòn ou.

Si ou vle fè yon JavaScript ekspresyon regilye, se sèlman chèk chif, menm tankou yon ka senp mande pou klarifikasyon. Li ta dwe konsidere kòm yon nonb antye relatif oswa fraksyon, notasyon syantifik, oswa nòmal, pozitif oswa negatif kantite. Ou kapab tou pran an kont egzistans lan nan senbòl nan lajan, ki kantite chif apre pwen an desimal ak divizyon an nan pati a tout antye nan nimewo a sou triyad la.

Ekspresyon / ^ \ d + $ / m tcheke nimewo sèlman ak ekspresyon /^\d+\.\d+$/i pèmèt itilize nan yon pwen ki endike pati nan fraksyon nan nimewo a.

Nan JavaScript tcheke ekspresyon regilye kapab itilize yo endike fòma a nan done yo opinyon difisil, ki se enpòtan, patikilyèman lè w ap antre Des, done paspò, ak adrès legal t. D.

Tcheke dat yo - ki senp nan konplèks la

Konsidere yon lòt JavaScript ekspresyon regilye. Men kèk egzanp nan dat, kòm pou kantite nimewo telefòn reprezante chwa ant frigidité ak fleksiblite. Dat nan evènman - youn nan done yo esansyèl, ki souvan gen yo dwe administre. Men, ranje D 'a nan yon fòma espesifik: "dd-mm-aaaa' oswa 'd.m.gg' souvan mennen nan mekontantman kliyan. Tranzisyon an soti nan jaden an opinyon nan jounen-a-mwa, plen ak klasik HTML fòm-, pa ka pran plas lè ou antre nan sèlman yon sèl chif, ak opinyon nan dezyèm ka difisil pou. Pou egzanp, nan jaden an nan jounen an li te prezante 3 ak nimewo nan pwochen te 2 pa ranplase premye a, epi li se atribiye nan l '32, ki, nan kou, yo pral lakòz kontraryete.

Efikasite ak konvenyans nan ekspresyon regilye esansyèlman depann sou konstriksyon an jeneral nan yon dyalòg ak vizitè a. Nan yon ka, yo endike dat la li se rekòmande yo sèvi ak yon sèl jaden D 'nan fòm nan, nan ka a lòt li nesesè pou bay pou jaden yo divès kalite pou jou mwa, ak ane. Men, Lè sa nenpòt lòt "depans nan kòd" nan tcheke ane a kwasans, ki kantite mwa, kantite jou nan yo.

Search epi ranplase, regilye memwa ekspresyon

JavaScript ranplase (regilye ekspresyon) lè l sèvi avèk metòd la nan objè a fisèl, epi ki pèmèt nou jwenn valè a ak chanje li imedyatman. Sa a se itil pou korije erè sezisman, modifye sa ki nan jaden yo fòm ak pou konvèti done ki sòti nan yon fòma prezantasyon nan yon lòt.

var cRegExp = / ([yon-z] +) \ a ([yon-z] +) \ a ([yon-z] +) / m; // lè pou twa 'varyab'

var sTest = 'atik sa a se bon!';
var cRegRes = sTest.replace (cRegExp, "$ 2, $ 3, $ 1");

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

dTestLine.innerHTML = 'ekspresyon' + cRegExp + 'pou fisèl la "' + sTest + '" vire:' + cRegRes;

rezilta:

ekspresyon / ([az] +) \ a ([az] +) \ a ([az] +) / m pou liy lan "atik sa a se yon bon bagay!" soti: atik la se yon bon bagay, sa a!

Lè yo fè chak pè nan parantèz magazen rezilta a nan 'varyab la' $ n, kote n - nimewo nan pè bracket ($ 1, $ 2, ...). Kontrèman ak konvansyonèl yo, isit la varyab nimero se 1, pa 0.

rekòmandasyon Jeneral

ekspresyon regilye senplifye kòd la, men tan an yo devlope li souvan fè yon diferans. Ou ka kòmanse ak desen ki senp epi Lè sa a, te fè nan konbine nan plis ekspresyon konplèks. Ou kapab sèvi ak divès kalite sèvis sou entènèt li teste ekspresyon regilye oswa espesyal zouti lokal yo.

Opsyon nan pi bon pral kreye bibliyotèk pwòp yo nan ekspresyon regilye ak zouti pwòp yo nan egzamen nouvo devlòpman. Sa a se fason ki pi bon yo konsolide eksperyans la ak pou aprann kijan pou byen vit bati konsepsyon serye ak konfòtab.

Lè l sèvi avèk repetisyon nan karaktè ak fisèl, ki se, '*' karaktè espesyal, '+' ak aparèy òtopedik, ki endike ta dwe nimewo a nan plede repete yon dwe gide pa prensip yo nan senplisite ak tronpri. Li enpòtan reyalize ke yon ekspresyon regilye nan konmansman an nan travay li yo, ak jwenn rezilta a se antyèman nan pouvwa a nan motè a itilize pa navigatè a. Se pa tout lang yo ekivalan a JavaScript. Chak navigatè kapab pote yo preferans pèsonèl nan rèv la vle ekspresyon regilye.

Konpatibilite se pa sèlman paj ak dra style, nan ekspresyon regilye, li tou te gen yo dwe fè. Paj la sèvi ak JavaScript, ki kapab konsidere kòm yon ki byen fonksyone sèlman lè li te avèk siksè te travay sou yon varyete de navigatè.

JavaScript, chèn ak regexp

Pa travay la dwat nan nivo nan kliyan, se sa ki, nan navigatè vizitè a nan JavaScript, li mande pou ladrès segondè nan pwomotè la. Lontan ase ou gen opòtinite a yo debug JavaScript-Kòd navigatè a pwòp lajan oswa avèk èd nan ekstansyon twazyèm-pati, editè kòd, pwogram endepandan.

Sepandan, se pa tout ka yo, debugjeur a ka okipe epi yo bay bon sipò pou pwomotè a, yon deteksyon erè rapid, detekte obstacles. Fwa yo lè gen òdinatè a te konsantre sou kalkil yo, nan tan lontan an byen lwen. Koulye a, peye atansyon espesyal nan enfòmasyon ak liy objè te vini nan jwe yon wòl enpòtan. Nimewo a nan strings asye, ak nati vre yo yo manifeste sèlman nan moman an dwa ak kote dwat.

ekspresyon regilye ranfòse posibilite pou liy, men mande pou pwòp tèt ou respè. Debug regexp nan travay li, menm si li se posib yo simulation, lide pa twò enteresan.

Konprann estrikti a ak lojik nan objè a regexp, sa vle di objè fisèl, sentaks la ak Semantics nan JavaScript - yon vre Kòd sekirite epi san danje, operasyon an ki estab nan chak paj ak sit la kòm yon antye.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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