Computer, Programming
Javascript, regular nga ekspresyon panig-ingnan, check regular Ekspresyon
Sa wala pa ang anhi sa hypertext pinulongan, apan hinoon, hangtud nga kini nahimo nga tin-aw nga dili lang kita kinahanglan nga motan-aw, apan sa pagbuhat sa ingon ubos sa pipila ka kahimtang, sa usa ka partikular nga dapit, sa ilalum sa mga nausab nga data sa husto nga natapok, ang naandan nga search ug pulihan function organisar sa bisan unsa nga komplikado programmer. Paghimo mga obra maestra sa arte search sa programming mga pinulongan, ug sa database milabaw sa mga matang sa sampling mga kahimtang, himan uban sa gitipigan nga mga pamaagi, oras ug uban pang mga paagi sa bulky sample relasyon nga impormasyon tracks. Ang dagway sa mga regular nga ekspresyon sa rebolusyon wala mogiya, apan kini mao ang usa ka mapuslanon ug sayon nga paagi sa pagpangita ug pulihan sa impormasyon. Pananglitan, regular nga mga ekspresyon JavaScript email kamahinungdanon simple registration sa mga bisita, dili load sa website sa pagpadala mensahe ngadto sa wala maglungtad pakigpulong.
Sa ingon nga ang usa ka JavaScript regular nga ekspresyon mao ang mas maayo produmannnyh han-ay indexOf () nagtawag sa frame sa conventional cyclic ug operators, dili apan ingon nga kini naghimo sa script code mao ang compact, apan gamay nga masabtan sa mga uninitiated, mahimong unambiguously.
Butang RegExp = + plantilya engine
Ang regular nga mga ekspresyon - mao ang usa ka template + engine. Ang una mao ang sa pagkatinuod usa ka regular nga ekspresyon - JavaScript butang - sa RegExp, ang ikaduha - kini nga sundanan performer, sa paggamit niini ngadto sa linya. Mga makina nga pagpatuman sa regular nga mga ekspresyon alang sa matag programming pinulongan mao ang mga lain-laing mga. Ug bisan tuod dili tanan mga kalainan importante, kini kinahanglan nga gipas-an diha sa hunahuna, ingon man usab sa nga sigurado sa pag-ayo check sa regular nga ekspresyon sa wala pa operasyon niini.
Usa ka espesyal nga nota sa diha nga pagsulat regular nga mga ekspresyon mao na sayon sa paggamit ug na epektibo, apan kini nagkinahanglan og pag-atiman, kalimpyo ug pailub gikan sa developer. Pinaagi sa mga nota sa regular nga ekspresyon sumbanan kinahanglan na nga gigamit sa. Kini mao ang dili usa ka uso, kini mao ang katarungan sa usa ka mekanismo alang sa pagpatuman sa «JavaScript regular nga mga ekspresyon."
regular nga sumbanan ekspresyon
Nagtugot sa duha ka kapilian:
var expOne = / ABC * / i;
var expTwo = RegExp ( "ABC *", "i");
Kasagaran kini gigamit sa unang pamaagi. Sa ikaduha nga kaso, ang mga kinutlo, tungod kay sa paggamit sa kinaiya '\', kini kinahanglan nga nakagawas sa kinatibuk-ang mga lagda.
'Ako' - flag nga nagpakita "kaso sensitibo". Mahimo usab sa paggamit sa bandera 'g' - «Global Search 'ug' m '- sa usa ka multi-sa linya sa pagpangita.
Ang simbolo '/' nga nagpaila nga komon sa paggamit sa usa ka template.
Ang sinugdanan ug katapusan sa mga regular nga ekspresyon
Ang '^' naghubit sa kinaiya (mga) nga sa pagsugod sa regular nga ekspresyon, ug ang '$' magtino nga kinaiya (mga) kinahanglan nga sa katapusan. Kamo kinahanglan dili eksperimento uban kanila sulod sa usa ka ekspresyon, diin sila adunay usa ka lain-laing mga kahulogan.
Kay sa panig-ingnan,
var eRegExp = bag-o nga RegExp (cRegExp, 'i');
var cRegRes = '';
var sTest = 'AbcZ';
kon (eRegExp.test (sTest)) {
cRegRes + = '- Oo';
} Else {
cRegRes + = '- Walay';
}
var dTestLine = document.getElementById ( 'scTestLine');
dTestLine.innerHTML = 'Ekspresyon /' + cRegExp + '/ alang sa laray "' + sTest + '"' + cRegRes.
Ang elemento 'scTestLine' moresulta (cRegExp baryable adunay usa ka katugbang nga kahulugan):
ekspresyon / ^ AbcZ $ / alang sa hilo "abcz" - Oo
Kong imo nga kuhaon ang 'i' bandera, ang resulta mao ang:
ekspresyon / ^ AbcZ $ / alang sa hilo "abcz" - Dili
Ang sulod sa usa ka regular nga ekspresyon
Ang usa ka regular nga ekspresyon mao ang usa ka han-ay sa mga karakter, nga mao ang hilisgutan sa search. Ekspresyon / qwerty / sa pagtan-aw alang sa pagsulod mao ang han-ay niini nga:
ekspresyon / qwerty / alang sa hilo "qwerty" - Oo
ekspresyon / qwerty / alang sa hilo "123qwerty456" - Oo
Ang '^' pagbag-o mao ang mga pahayag:
ekspresyon / ^ qwerty / alang sa hilo "123qwerty456" - Dili
ekspresyon / ^ qwerty / alang sa hilo "qwerty456" - Oo
Sa susama, alang sa katapusan sa linya simbolo. Regular nga mga ekspresyon motugot alang sa pagkamakanunayon: kay sa panig-ingnan, [az], [AZ], [0-9] - ang tanan nga mga letra sa alpabeto sa niini nga kaso o numero. Russian nga mga sulat usab mahimong gamiton, apan kinahanglan nga mobayad sa pagtagad ngadto sa pag-encode sa mga kuldas (nga ang gipangita nga nangita) ug mga panid. Kasagaran Russian nga mga sulat, ingon man usab sa espesyal nga mga karakter, kini mao ang mas maayo aron sa codes.
Sa diha nga ang pagtukod sa usa ka regular nga ekspresyon mahimong hingalan mga kapilian alang sa sa atubangan sa pipila ka mga simbolo sa usa ka partikular nga dapit, uban sa ilang gidaghanon nga gihatag ingon sa mosunod: '*' = 0 pagsubli o labaw pa nga mga panahon; '+' = 1 o labaw pa sa pagbalik-balik nga mga panahon; {1} mao ang sama nga, ingon sa '+'; {A} = pagbalik-balik gayud sa n panahon; {A,} = n pagbalik-balik sa mga panahon o labaw pa; {A, m} = pagsubli sa n sa m panahon.
Pinaagi sa paggamit sa bracket, nga imong mahimo sa hingalan sa kinaiya nga gibutang sa mga kapilian. Kini motan-aw sama niini. [ABCD] = [ad] = sa matag upat ka mga simbolo: 'usa ka', 'b', 'c' o 'd'. Ikaw mahimo hingalan sa kon. Sa bisan unsa nga kinaiya sa uban nga kay sa mga bungat sa set: [^ ABCD] = sa bisan unsa nga kinaiya sa uban nga kay sa 'usa ka', 'b', 'c' o 'd'. '?' Kini nagpakita nga sa niini nga punto sa simbolo dili mahimo. '.' nagtino sa bisan unsa nga kinaiya sa uban nga kay sa nga nagpakita sa newline. Kini '\ n', '\ r', '\ u2028' o '\ u2029'. Ang ekspresyon nga '\ s * | \ S *' = '[\ s | \ S] *' nagpasabot sa search alang sa bisan unsa nga kinaiya, lakip na ang newlines.
Simple nga bersiyon sa regular nga ekspresyon
Ang ekspresyon nga '[\ s | \ S] *' - search luna, o kakulang niini, nga mao ang tanan nga sa ibabaw sa mga linya. Sa kini nga kaso, ang simbolo '\ s' nagpakita sa usa ka luna, ug '\ S' - sa iyang pagkawala.
Sa susama, kamo makahimo sa paggamit '\ d' sa pagpangita alang sa mga numero decimal, ug '\ D' pagpangita sa usa ka non-numerawo kinaiya. Nota '\ f', 'r' ug '\ n' sibo sa dagway-feed, karwahe pagbalik ug linya-feed.
Ang tab kinaiya - '\ t', bertikal - '\ v'. Ang ngalang '\ w' makakaplag sa bisan unsa nga Latin nga alpabeto kinaiya (mga sulat, mga numero, ug ang underscore marka) = [A-Za-z0-9_].
Ang ngalang '\ K' mao ang katumbas sa [^ A-Za-z0-9_]. Kini nagpasabot sa bisan unsa nga kinaiya nga dili usa ka sulat sa alpabeto, gidaghanon, o '_'.
Search kinaiya '\ 0' = search NUL karakter. Search '\ xHH' o '\ uHHHH' = Search kinaiya code o HHHH HH sa tinagsa. H - hexadecimal digit.
Girekomendar pulong ug coding sa regular nga ekspresyon
Sa bisan unsa nga regular nga ekspresyon mao ang importante nga pag-ayo gisulayan sa lain-laing mga bersiyon sa mga talay.
Uban sa kasinatian sa paghimo sa usa ka regular nga ekspresyon sayop mahimong mas gagmay, apan bisan pa niana kinahanglan nga kanunay nga gisaulog sa hunahuna nga ang ilang kaugalingon nga kahibalo sa mga lagda sa pagsulat regular nga mga ekspresyon dili mahimong tinuod, ilabi na kon ang "regular season" gibalhin gikan sa usa ka pinulongan ngadto sa lain.
Pagpili sa taliwala sa classic (eksaktong timailhan) ug usa ka simple nga bersyon sa usa ka regular nga ekspresyon, kini mao ang mas maayo nga gusto sa una. Human sa tanan, sa mga classics kanunay tin-aw nga gipakita nga ang duha nangita. Kon ang regular nga ekspresyon o search hilo adunay Russian nga mga sulat, kinahanglan modala ngadto sa usa ka ka-encode sa tanan nga mga linya ug sa mga pahina nga naglihok sa pagpangita JavaScript-code naghimo sa usa ka regular nga ekspresyon.
Sa diha nga adunay usa ka kinaiya pagproseso, non-Latin nga alpabeto, kini makahimo sa pagbati sa paghunahuna sa usa ka timailhan sa mga code kinaiya, dili ang mga karakter sa ilang mga kaugalingon.
Sa diha nga sa pagpatuman sa search algorithms sa JavaScript regular nga ekspresyon kinahanglan nga pag-ayo gitan-aw. Kini mao ang ilabi na nga importante sa pagpugong sa kinaiya pag-encode.
Ang mga parentesis diha sa regular nga ekspresyon
Ang mga bracket nagpaila sa mga kapilian alang sa simbolo, nga kinahanglan o dili mahimo nga sa usa ka dapit, ug round - han-ay variants. Apan kini mao ang lamang usa ka kinatibuk-ang pagmando sa. Gikan kini walay gawas, apan adunay usa ka halapad nga matang sa mga aplikasyon.
var cRegExp = "[az] * (png | jpg | gif).";
var eRegExp = bag-o nga RegExp (cRegExp, 'i');
var cRegRes = '';
var sTest = 'picture.jpg';
kon (eRegExp.test (sTest)) {
cRegRes + = '- Oo';
} Else {
cRegRes + = '- Walay';
}
resulta:
/[az]*.(png|jpg|gif)/ ekspresyon alang sa linya nga "picture.jpg" - Oo
/^[ad][az]*.(png|jpg|gif)/ ekspresyon alang sa "picture.jpg" linya - Dili
/^[ad][az]*.(png|jpg|gif)/ ekspresyon alang sa linya nga "apicture.jpg" - Oo
/^[ad][az]*.(png|jpg|gif)/ ekspresyon alang sa "apicture.jg" linya - Dili
Kini kinahanglan nga nakita nga ang tanan, nan sa usa ka asterisk mahimong karon zero panahon. Kini nagpasabot nga ang mga "regular season" aron sa pagbuhat sa wala damha nga mga paagi sa labing menos.
Check RegExp - pagsulay email
Sa regular nga JavaScript ekspresyon nga nakuha sa duha ka mga paagi, pagsulay ug Exec, ug mahimong gigamit sa mga linya butang (Ipalusot) sa ilang mga pamaagi (gimbuhaton): search, tipak, mopuli ug match.
test pamaagi na gipakita, nagtugot kini kaninyo sa pagsusi sa mga pagkahusto sa mga regular nga ekspresyon. Pamaagi Result: tinuod nga / bakak.
Tagda ang mosunod nga JavaScript regular nga mga ekspresyon. Check email gikan sa gidaghanon sa mga "lisud, apan sa pagkatinuod":
var eRegExp = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s @ "] +) *) | ("... + ")) @ ((\ [[0-9] {1,3} \ [0-9] {1,3} \ [0-9] { . 1,3} \ [0-9] {1,3}]) | (. ([sa usa ka-za-Z \ -0-9] + \) + [usa ka-za-Z] {2}) ) $ /;
usa ka hilo var sTest ='SlavaChip@sci.by 'naghatag tinuod, nan may kini nga hilo mao ang husto nga email-address. audit nga gihimo sa eRegExp.test (sTest).
Praktikal nga gamit: pagtambal sa e-Mail
Ekuhitibo nga pamaagi naghatag sa output gubat, tawga:
var aResult = eRegExp.exec (sTest);
cRegRes = '
' + aResult.length + '
';
alang sa (var i = 0; i
';
}
Kini naghatag sa mosunod nga resulta:
9
Slava.Chip@sci.by
Slava.Chip
Slava.Chip
.Chip
dili tino ang
sci.by
dili tino ang
sci.by
Sci.
Uban nga mga pamaagi sa pagtrabaho sa samang paagi. Kini girekomendar aron sa pagsusi kanila gikan sa imong kaugalingon. Development ug sa paggamit sa regular nga mga ekspresyon, kini mao ang madanihon sa pagtrabaho diha sa buhat, sa code pagkopya dili sa kanunay advisable dinhi.
Popular "regular nga panahon"
JavaScript regular nga ekspresyon nga gihatag ngadto sa email dili lamang adunay daghan pa nga sayon nga mga kapilian. Pananglitan, /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Apan, kini nga larawan nga makakuha sa asoy dili tanang embodiments sa email address nga rekord.
Siyempre, kamo kinahanglan gayud nga panglantaw sa kasinatian sa mga kauban, sa pag-analisar kon sa unsang paagi sa ilang gisugyot sa atubangan sa pagdesinyo sa ilang kaugalingon sa JavaScript regular nga mga ekspresyon. Apan adunay mga pipila ka mga kalisdanan. Kita kinahanglan nga dili kalimtan nga ang usa ka JavaScript regular nga mga ekspresyon (mga panig-ingnan sa diha nga pagkopya) makakopya ang importante nga mga karakter: '\', '/' o mga kinutlo. Kini modala ngadto sa sayop, nga ikaw mangita dugay.
Kini mao ang importante sa pag-ngadto sa asoy sa mga naandan nga "sa tawo nga kabahin." Human sa pormal nga JavaScript regular nga ekspresyon alang sa telepono, nga mahimong ang bisita (nga tawo), kini gihatag diha sa lain-laing mga paagi: 123-45-67, (29) 1234567, 80291234567 o 375291234567. Ug kini sa tanan sa mao usab nga gidaghanon. Spelling daghang mga sumbanan dili sa kanunay madawat, ug rigid fixation sa mga lagda alang sa pagsulat sa mga numero aron sa paghimo sa wala kinahanglana nga kahasol o pagdili. Option / ^ \ d [\ d \ (\) \ -] {4,14} \ d $ / i mao ang angay alang sa kadaghanan sa mga kaso kamo check sa imong numero sa telepono.
Kon kamo gusto sa paghimo sa usa ka JavaScript regular nga mga ekspresyon, tseke lamang numero, bisan sa ingon nga sa usa ka yano nga kaso nagkinahanglan klaripikasyon. Kini kinahanglan nga giisip nga usa ka integer o fractional, siyentipikanhong nota, o normal, positibo o negatibo nga gidaghanon. Ikaw mahimo usab ngadto sa asoy sa pagkaanaa sa mga simbolo currency, ang gidaghanon sa mga numero human sa decimal nga punto ug sa division sa tibuok bahin sa gidaghanon sa triad.
Ekspresyon / ^ \ d + $ / i check lang numero ug /^\d+\.\d+$/i ekspresyon nagtugot sa paggamit sa usa ka punto nga nagpaila sa fractional bahin sa gidaghanon.
Sa JavaScript pagsusi regular nga mga ekspresyon mahimong gamiton sa nagpaila sa format sa malisud nga input data, nga mao ang importante, ilabina sa dihang pagsulod profile, passport data, ug legal nga mga pakigpulong t. D.
Susiha ang mga petsa - yano nga sa sa complex
Tagda ang laing JavaScript regular nga mga ekspresyon. Mga panig-ingnan sa petsa, ingon nga alang sa gidaghanon sa mga numero sa telepono nagrepresentar sa pagpili tali sa rigidity ug sa pagka-flexible. Petsa sa maong kalihukan - usa sa mga importante nga data, nga sagad nga ipangalagad. Apan ayo sa input sa usa ka piho nga format: "DD-mm-yyyy 'o' d.m.gg 'sagad mosangpot sa customer katagbawan. Ang transisyon gikan sa input kapatagan sa adlaw-sa-bulan, nga puno sa classic HTML-porma, dili pagkuha sa dapit sa diha nga kamo mosulod sa usa lamang ka digit, ug ang ikaduha input mahimong lisud. Kay sa panig-ingnan, sa kapatagan sa adlaw nga kini gipaila-ila 3 ug sa sunod nga numero 2 wala mopuli sa una, ug gipahinungod ngadto sa iyang 32, nga, siyempre, ang hinungdan sa kahasol.
Efficiency ug kasayon sa mga regular nga mga ekspresyon esensya magdepende sa kinatibuk-ang pagtukod sa usa ka dialogue uban sa mga bisita. Sa usa ka kaso, nagpakita sa petsa nga kini mao ang advisable sa paggamit sa usa ka input kapatagan sa sa porma, sa uban nga mga kaso kini mao ang gikinahanglan aron sa paghatag alang sa mga nagkalain-laing mga kaumahan alang sa adlaw, bulan ug tuig. Apan unya sa bisan unsa nga dugang nga "gasto sa kodigo" sa pagsusi sa mga tuig luksoan, ang gidaghanon sa mga bulan, ang gidaghanon sa mga adlaw diha kanila.
Susiha ug pulihan, regular nga ekspresyon sa panumduman
JavaScript mopuli (regular nga mga ekspresyon) sa paggamit sa mga pamaagi sa sa pisi butang, ug motugot kanato sa pagpangita sa bili ug mag-usab kini diha-diha dayon. Kini mao ang mapuslanon alang sa pagtul-id sa mga sayop tayp, usba ang mga sulod sa mga kaumahan porma ug alang sa pagkabig sa data gikan sa usa ka presentasyon format ngadto sa lain.
var cRegExp = / ([sa usa ka-z] +) \ s ([sa usa ka-z] +) \ s ([sa usa ka-z] +) / i; // sa diha nga pagpangita mao ang totolo ka 'baryable'
var sTest = 'niini nga artikulo mao ang maayo!';
var cRegRes = sTest.replace (cRegExp, "$ 2, $ 3, $ 1");
var dTestLine = document.getElementById ( 'scTestLine');
dTestLine.innerHTML = 'ekspresyon nga' + cRegExp + 'alang sa hilo "' + sTest + '" mobalik:' + cRegRes;
resulta:
ekspresyon / ([az] +) \ s ([az] +) \ s ([az] +) / i alang sa linya nga "niini nga artikulo mao ang maayo!" gikan sa: ang artikulo maayo, niini!
Sa diha nga sa pagbuhat sa matag parisan sa parentesis tindahan sa resulta sa 'baryable' $ n, diin n - gidaghanon sa mga bracket nagtinagurha ($ 1, $ 2, ...). Dili sama sa conventional, dinhi baryable ihap mao ang 1, dili 0.
Kinatibuk-ang rekomendasyon
Ang regular nga ekspresyon mopayano sa code, apan ang panahon sa pag-ugmad kini kanunay naghimo sa usa ka kalainan. Mahimo nimong sugdan uban sa yano nga mga laraw ug unya gihimo sa combine sa mas komplikado nga mga ekspresyon. kamo makahimo sa paggamit sa nagkalain-laing mga serbisyo sa online sa pagsulay sa regular nga mga ekspresyon o espesyal nga mga lokal nga mga himan.
Ang labing maayo nga kapilian paghimo sa ilang kaugalingon nga librarya sa regular nga mga ekspresyon ug sa ilang kaugalingong mga himan aron sa pagsulay sa bag-ong mga kalambuan. Kini mao ang labing maayo nga paagi sa konsolidahon ang kasinatian ug sa pagkat-on kon sa unsang paagi sa madali sa pagtukod kasaligan ug komportable nga desinyo.
Pinaagi sa paggamit sa pagbalik-balik sa mga karakter ug mga kuldas, nga mao, ang espesyal nga mga karakter '*', '+' ug tukod, nga nagpaila sa gidaghanon sa mga pagbalik-balik kinahanglan nga magiyahan pinaagi sa mga baruganan sa kayano ug katuyoan. Kini mao ang importante nga makaamgo nga ang usa ka regular nga ekspresyon ngadto sa sinugdanan sa iyang buhat, ug sa pagkuha sa mga resulta mao sa bug-os diha sa gahum sa makina nga gigamit sa mga browser. Dili tanan nga mga pinulongan mao ang katumbas sa JavaScript. Ang matag browser managdala sa ilang mga personal nga mga gusto sa hubad sa kahulogan sa regular nga mga ekspresyon.
Pagkaangay mao ang dili mga panid lang ug estilo sheets, sa regular nga mga ekspresyon, kini usab adunay sa pagbuhat sa. panid sa naggamit JavaScript, mahimong giisip nga usa ka pag-ayo-nga naglihok lamang sa diha nga kini malampuson nga nagtrabaho sa usa ka lainlaing matang sa mga browsers.
JavaScript, pisi ug RegExp
Pinaagi sa husto nga trabaho sa ang-ang kliyente, nga mao, sa browser sa bisita sa JavaScript, nagkinahanglan kini og taas nga kahanas sa developer. Dugay na kamo adunay oportunidad sa debug JavaScript-code browser kaugalingong mga pundo o uban sa tabang sa extensions sa third-party, editor code, independente nga mga programa.
Apan, dili tanang mga kaso, ang mga debugger mahimo pagdumala ug paghatag og maayo nga suporta alang sa developer, usa ka kusog nga sayop detection, makamatikod bottlenecks. Sa mga panahon sa diha nga ang computer nga naka-focus sa mga kalkulasyon, sa layo nga nangagi. Karon, pagbayad sa espesyal nga pagtagad ngadto sa impormasyon ug linya butang mianhi sa pagdula sa usa ka importante nga papel. Ang gidaghanon sa mga kuldas puthaw, ug ang ilang mga tinuod nga kinaiya nga sila mopakita lamang sa husto nga panahon ug husto nga dapit.
Ang regular nga mga ekspresyon on sa posibilidad sa linya, apan nagkinahanglan sa kaugalingon pagtahod. Debug RegExp sa iyang buhat, bisan kon kini mao ang posible nga sa kopya sa, dili kaayo makapaikag nga ideya.
Pagsabut sa istruktura ug katarungan sa RegExp butang, nga nagkahulogang butang hilo, ang syntax ug semantiko sa JavaScript - sa usa ka tinuod nga luwas ug luwas nga code, ang lig-on nga operasyon sa matag pahina ug ang dapit nga ingon sa usa ka bug-os nga.
Similar articles
Trending Now