Komputeran, Bernameyên
Javascript, wergerandî îfade kirin, kontrol Ramanî Regular
Ji ber ku têgihîştina zimanên hypertext, lê belê, heta ku ev eşkere bû ku ne tenê ji bo lêgerîn, lê di heman demê de, hin taybetmendiyên di navnîşek taybetî de, di daneyên guhertinê de, di nirxên rast de, lêgerîna lêgerînê û lêgerînên normal têne ji bo her sophisticated pêk tê. Programmer. Mamosteyên lêgerîna hunerî di zimanên programming de hate afirandin, û databases di şertên nimûneyên pêvajoyê de hatine guhertin, bi rêbazên hilberîn, tedawî û rêbazên din ên nimûne ji komên agahdariyên têkildarî yên cinsî yên cinsî re hatine çêkirin. Vebijêrîna ji bo şoreşên normal yên ji bo şoreşê nekiriye, lê ew wateya ku ji bo lêgerînê û veguherandina agahiyên hêsan û hêsan e. Ji bo nimûne, e-nameyên JavaScript-ê ku bi qeydkirina mêvanan hêsan e, hêsan e ku malperê bi navnîşên navnîşên ne-hejmar bişînin.
Ji bo ku bêjin ku gotina rêjeya rûpela rasterast ji hêla baş-ramana index -ff () veguherînên di çarçoveya operatorên sermîl û bertilîk de, ew e ku ne guman e, lê bêjin ku ev kodê kodê danûstandin, lê belê bêkêmasî fêm kir ku bêkêmkirin bêkêmasî ye.
RegExp object = template + engine
Ravek rasterastî pirtûkek + engineek heye. Yekem yekem xwenîşandanek xweşkirî ye - Peyva JavaScriptê RegExp e, yê duyemîn pêdivî ye ku pêveka templateê ye. Engines ku ji bo zimanên her bernameyên cuda cuda cuda eşkere dike. Û her çiqas ne cûda girîng in girîng e, ew divê di hişê xwe de, bi vî awayî ku hûn bikar bînin ku hûn bi karanîna berfirehtir bi awayekî vekirî re kontrol bikin.
Têgihîştineke taybetî ji bo nivîsandina rasterastên hêsan hêsan û pir bandor e, lê ji bo pêşveçûna lênêrîn, rastiyê û bîhnfirehiyê ji pêşveçûnê re hewce dike. Ji bo guhdariya nimûneyên ramanên xweras e ku ew pêwîst e ku bikar bînin. Ev ne pîrozbahî bi fonce ye, ew eşkere ya bicîhkirina mîkrozîzmê ya "Javascriptên bişkojka rastîn" e.
Nimûneya ramanek rêzdarî
Du vebijar têne destûr kirin
Var expOne = / abc * / i;
Var expTwo = RegExp ("abc *", "i");
Bi gelemperî rêbazê yekemîn tê bikaranîn. Di rewşeke duyem de, nimûneyên lêgerîn têne bikaranîn, da ku bikarhêner '\' bikar bînin, divê ew bi rêbazên hevpar re reviyane.
'Ez' eşkere ala "tomar girîng e" ne. Hûn dikarin li ala ala 'ala' '-' lêgerînê global 'û' m '- lêgerîna pir-rêzan bikar bînin.
Sembol '/' tê bikaranîn ku ji bo kopîkirinê binivîse.
Destpêk û dawiya axaftina rasterast
Kesayetiyê '^' ji xemgîniya sîteyê (ku) tête ku gotina rasterast dest pê dike, û '$' eşkere dike ku kîjan kesayetiyê divê di dawiyê de. Di hundurê xwe de di nav îfadeyê de ezmûn nakim, hebûna wan wateya cuda ye.
Bo nimûne,
Var eRegExp = RegExp nû (cRegExp, 'i');
Var cRegRes = '';
Var sTest = 'AbcZ';
Heke (eRegExp.test (sastest)) {
CRegRes + = '- Yes';
} Else {
CRegRes + = '- Na Na';
}
Var dTestLine = belgekirin.getElementById ('scTestLine');
DTestLine.innerHTML = 'Gotar / + + cRegExp +' / ji bo string "+ sTest + '" + cRegRes.
Di elementa 'scTestLine' de hebe wê encamek bibe (cegegExp cûre peyda heye):
Gotar / ^ AbcZ $ / ji bo string "abcz" - Erê
Heke hûn ala 'ez' derxînin, encam wê bibe:
Gotar / ^ AbcZ $ / ji bo string "abcz" - Na
Naveroka ramanek rêzdarî
Danûstendineke rasterast bi rêgezên karek e ku mijara lêgerînê ye. Gotar / qwerty / ji bo vê bûyerê bi temamî xuya dike:
Expression / qwerty / ji bo string "qwerty" - Erê
Gotar / qwerty / ji bo string "123qwerty456" - Erê
Lîsteya '^' nirxa axaftinê biguherîne:
Gotar / ^ qwerty / ji bo string "123qwerty456" - Na
Gotar / ^ qwerty / ji bo string "qwerty456" - Erê
Ji ber vê yekê ji bo xorta dawîn. Gotarên rasterast bi rêbazên rêbaz dikarin rêvebirin: ji bo nimûne, [az], [AZ], [0-9] - hemî nameyên latînî yên di navnîşên qeydkirî an hejmar de nameyan. Peyvên rûsî jî tê bikaranîn ku hûn bikar bînin, lê divê hûn bi balafirkirina strêner (ji bo ku li vir bibînin ka çi lêgerîn ji bo lêgerîn) û rûpela pêdivî ye. Piranîya nameyên Rûsyayê, wekî nimûneyên taybetî yên taybet, ji hêla hêja têne dayîn.
Dema ku xwenîşandanek demkî ya rasterast ava dike, hûn dikarin ji bo hin hinek nîşanên hinek nîşanên diyar bikin, hejmareke wan di navnîşan de wiha digirin: '*' = şewitandina 0 an jî zêdetir caran; '+' = 1 caran û zêdetir caran dubare bikin; {1,} wekî '+' e; {N} = bi temamî n car veguhestin; {N,} = revandin ya n û gelek caran; {N, m} = davêjin ji n dem m m.
Bikaranîna kûçeyên karanîna, hûn dikarin celebên pîvanên ji setê re diyar bikin. Ew wisa dibîne. [Abcd] = [ad] = kesek çar kes: 'a', 'b', 'c' an 'd'. Hûn dikarin pêşniyarkirî diyar bikin. Her kesek karekên din ji wan re di setê de diyar kirin: [^ abcd] = kesek kesî bila 'a', 'b', 'c' an 'd'. '?' Têbigihîne ku li vê derê nabe ku sembol nabe. '.' Ji bila qutiyek xerîbek xilas bike. Ev '\ n', '\ r', '\ u2028' an '\ u2029' ye. Gotara '\ s * | \ S *' = '[\ s | \ S] *' tê wateya lêgerîn ji bo her kesayetiyê, navnîşên rêzikan.
Guhertoyên hêsan ên xuyakirî ya regular
Gotar '[\ s | \ S] *' - lêgerîna cîhek an nebûna wê, ku her tişt di nava rêzê ye. Di vê rewşê de, nirxa 's' ji bo cihekî rawestîne, û \ S 'ji bo nebûna wê ye.
Bi vî awayî, hûn bikarhêner '\ d' bikar bînin ku ji bo hejmareke dane-ê bigerin, û 'D' dê di nîşaneya nen-nîjîk de bibînin. Vebijêrkên '\ f', 'r' û '\ n' li gorî forma xwarinê, vegera xerîb û navîn-xwarinê.
Lîsteya tablo '\ t' ye, taybetmendiya vertical 'v v' ye. Vebijêrk \ \ w 'dê her kesayetek alfabeya latînî (hejmar, hejmar, hejmar) = [A-Za-z0-9_] bibînin.
Vebijêrk \ \ W 'wekhev e [^ A-Za-z0-9_]. Ev tê wateya ku kesayetiyek ku ne nameyek alfabeya latînî ne, hejmarek an jî '_' -ku.
Ji bo lîstikarek '\ 0' = Li ser lêgerîna NUL-ê bigerin. Ji bo '\ xHH' an '\ uHHHH' = Pirtûka ji bo kodê digel HH an HHHH, lêgerîn. H-hexadecimal digit.
Zimanek pêşniyar kirin û kodkirina danûstendina rasterast
Hişyariyek herdem girîng e ku ji bo alternatîfên cûrbecî yên tedawî biceribînin
Bi tecrûbeya ku ramanên berdewamî yên rasterast çêbikin, çewt dê kêmtir be, lê dîsa her kes divê di hişê xwe de bimînin ku zanîna xwe ya qaîdeyên xwenîşandanek bi rêkûpêkek hêjayî re dibe ku rastiyê nabe, bi taybetî jî gava ku "derman" ji zimanek din veguherîne.
Hilbijartin di navbera klasîk (nîşanên rastîn) û versiyonek hêsanî ya îfadeya fermî de hilbijartin, ew çêtir e ku pêşî yekem bijare. Piştî vê yekê, klasîkên herdem bi awayekî zelal eşkere dike ku çi tê hewl kirin. Heke nameyên Rûsyayê di navnîşa rasterast de an jî li ser lêgerînê, divê hûn encamên hemî rêzan û pirtûka ku li ser kodê JavaScriptê dike ku behsa xwenîşandanek bicîh dikeve encam dibe.
Dema ku krîterên pêvajoyên ku ne bi alfabeya latînî re ne, ew têgihîştin ku kodeyên taybetmendiyê nake ku nexşeyên xwe bikin.
Dema ku bicîhkirina algorithmên lêgerîna JavaScriptê, xuyanîya rêzdarî divê bi baldarî kontrol kirin. Ew bi taybetî girîng e ku kodek kodî kontrol bikin.
Parentheses in expressions of regular
Barkên çarçoveyê nîşana nîşa nîşankirin ku divê di cîhek taybet de be, an jî rêyên variants yên pêşniyar in. Lê ev yek desthilatdariyeke giştî ye. Ji vê derengî tune ne, lê gelek serîlêdanên cuda hene.
Var cRegExp = "[az] *. (Png | jpg | gif)";
Var eRegExp = RegExp nû (cRegExp, 'i');
Var cRegRes = '';
Var sTest = 'picture.jpg';
Heke (eRegExp.test (sastest)) {
CRegRes + = '- Yes';
} Else {
CRegRes + = '- Na Na';
}
Encam:
Expression /[az]*.(png|jpg|gif)/ ji bo the line "picture.jpg" - Erê
Expression /^[ad][az]*.(png|jpg|gif)/ ji bo the line "picture.jpg" - No
Expression /^[ad][az]*.(png|jpg|gif)/ ji bo the string "apicture.jpg" - Erê
Expression /^[ad][az]*.(png|jpg|gif)/ ji bo the string "apicture.jg" - No
Divê pispor xuya dike ku her tiştê ku piştî ku ewrûpa heye, carî dikare demên sifir be. Ev tê wateya ku "radyo" dikare bi awayek herî bêpêşkêşî bi karê xwe re kar bikî.
Guherandina RegExp - e-nameya testê
Di JavaScriptê de, gotinên rasterast bi du rêbazan, test û darizandin digirin, û dikarin di nav rêbazên wan de li Stringên bikaranîna bikarhêneran bikar bînin: lêgerîn, parvekirin, veguherînin û heval.
Pergala ceribandinê jixwe pêşî ye, da ku hûn ji bo rastiya xwenîşandanek rastîn kontrol bikin. Di encamê de rêbazek rast / derew e.
Dîtinên JavaScriptê yên ku bi rasterast re binirxînin. Ji hejmara "zehmet, lê belê rast" e-nameya kontrolkirinê:
Var eRegExp = /^ (() @ "] +) *) | (" + + ")) @ ((\ [[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,}) ) $ /;
Ji bo string var sTest = 'SlavaChip@sci.by' rast e, ew e ku ev eşkere navnîşana e-nameyê rast e. Check kar bi eRegExp.test (sastest) bikar tîne.
Bikaranîna praktîkî: e-nameya pêvajoyê
Rêbazê darizandin li ser hilberek rêjeyê dide, telefon bikin:
Var aResult = eRegExp.exec (sTest);
CRegRes = '
' + aResult.length + '
';
Ji bo (var i = 0; i
';
}
Encamên jêrîn dide me:
9th
Slava.Chip@sci.by
Slava.Chip
Slava.Chip
.Di
Nerazîkirî
Sci.by
Nerazîkirî
Sci.by
Sci.
Rêbazên din jî wekhev dixebite. Ew pêşniyaz kirin ku xwe bidin kontrol bikin. Pêşveçûn û karanîna danûstendinên rasterast e ku hewce ye ku di pratîkê de, kopîkirina kodê her tim li vir bêaqil e.
Popular "regulators"
Ji bo eşkere ya sembolê ya rasterast ya eMail tenê yek yek e, lêverên hêsantir hene. Ji bo nimûne, /^[w-\.]+@[\w-]+\.[az]{2,3}$/i. Lêbelê, vê bijare ji bo navnîşana e-nameya e-nameyan ji bo hemî bijartan hesab nîne.
Bê guman, hûn hewce nebe ku ezmûnên hevpeymanan binirxînin, rêbazên ku ew pêşkêş dikin, pêşniyaz bikin ku beriya te ya xweya xwe ya rasterast biafirîne. Lê hin pirsgirêk hene. Ji bîr nekin ku bişkojka regular JavaScript (mînakên wan dema ku kopîkirinê) dikarin nerastên bingehîn dikarin dakêşin: '\', '/' an jî nirxên katalan dikarin. Ev dê bibe sedema xeletiyek ku ji bo demekê dirêj dibe lêgerîn.
Pêdivî ye ku ji bo "pêşniyazek mirovî" tête hesab kirin. Wekî din, ji bo telefona fermî ya fermî ya fermî ya fermî ku dikare bibe mêvanek (kes) dikare dikare di gelek awayan de nîşan bide: 123-45-67, (29) 1234567, 80291234567 an jî +375291234567. Û hemî heman hejmar e. Variant a nivîsandina gelek tîmên ku herdem herdem qebûl nabe, û bicîhkirina rêjîmê ya ji bo hejmarek nivîskî dikare nikare bêaqil û sînorên nerazî ne. Variant / ^ \ d [\ d \ (\) \ -] {4,14} \ d $ / i ji bo piranîya dozên belgeyê ji bo telefona erê ye.
Heke hûn dixwazin dixwazin bişkojka regular JavaScript, bi tenê hejmaran kontrol bikin, hingê hûn rewşeke pir hêsan be paqij kirin. Divê hebek anteger an qonaxal, hûrgotineke berbiçav an jî hejmarek normal, hejmarek erênî an hejmara neyînî bibînin. Hûn dikarin li ser hebûna hebûna sembolê, hejmara hejmarek piştî qonaxa dakêşî û parvekirina tevahiya beşa hejmara navendî de sêwir bibin.
Gotar / ^ \ d + $ / ê ez tenê hejmara hejmaran binihêrim, û gotina / ^ \ d + \ d \ $ / ez dikarim ku hûn demek dirêj bikim ku beşek beşek parçeyek nîşanî.
Di JavaScriptê de, kontrolkirina danûstendinên rasterast bi kontrol kirin ku ji bo daneyên danûstandinên danûstandinê diyar dikin, ku girîng e, bi taybetî dema dema pirsnameyên navnîşan, daneyên pasaport, navnîşên qanûnî, etc.
Dîroka lêpirsînê tenê li ser zehmet e
Vebijêrkên rasterastên rasterast biçav bikin Mînakên ji bo roja, wekî hejmara hejmarek an hejmara telefonê, hilbijartinek di navbera zehf û tengahiyê de nîşan dide. Dîroka bûyera yek ji daneyên pêwîstî ye ku pir caran hewce bike ku têkevin. Lê belê di çarçoveyek taybetî de pêvekirina danûstendinê de: 'dd-mm-yyyy' an 'dm.yy' pir caran dibe sedema xemgîniya mişterî. Ji veguhastina ji qada navxweyî ya rojane, bi forma HTML-ê tête darizandin, nikare cih nekin ku tenê yek yekemîn tête navnîşan, û dikare yek yek di nav xwe de zehmet bibe. Ji bo nimûne, di zeviya 3-ê de hatibû nivîsandin, û hejmara duyemîn 2 nabe yekem yek, û li wê 32-yê, ku bi xwezayî ye, wê bêaqiliyê bibe.
Efficiency û hêsaniya xwerûdarên bi awayekî bingehîn bi avakirina diyalogê re bi serdana hevdîtinê re girêdayî ye. Di rewşek de, ew pêşniyaz e ku hûn qada navnîşa yekgirtî bikar bînin ku roja dahat bikin, di rewşeke din de pêwîst e ku zeviyên din ji bo rojê, meha û salan bidin. Lê dûre wê dê "salona kodê" bêtir ji bo kontrola salê, hejmarek mehan, hejmarek rojan di nav wan de bibin.
Bi veguhastina lêgerînê, bîranîna xwenîşandanek rêzdarî
Javavê veguherîna JavaScript (ramanên rasterast) ji rêbazek Stringa bikar bînin û hûn destnîşan dikin ku hûn nirxê xwe bibînin û bi cih bîne. Ev ji bo şaşên derfetên hêsan ên rastîn e, pirtûkên formên formê biguherînin, û ji bo daneyên danûstendinê ji hêla pêşniyareke din ve biguherînin.
Var cRegExp = / ([а-я] +) \ s ([а-я] +) \ s ([а-я] +) / i; // li sê lêgerîn 'guherîn' têne çêkirin
Var sTest = 'ev gotara baş e!';
Var cRegRes = sTest.replace (cRegExp, "$ 2, $ 3, $ 1");
Var dTestLine = belgekirin.getElementById ('scTestLine');
DTestLine.innerHTML = 'Gotar' + cRegExp + 'ji bo string "+ sTest +" dê bibe:' + cRegRes;
Result:
Gotar / ([a-π] +) \ s ([a-π] +) \ s [[a-π] +) / ez ji bo xala "ev gotar e!" Wêje: gotarek, baş, ev yek!
Dema ku dar xistin, her du cotên dînokan di encama 'variable' $ n de dikir, li nê hejmara hejmar ($ 1, $ 2, $ ...) ye. Berevajî bi gelemperî pejirandin, li vir hejmarên hejmarê 1, û ne bi 0 re têne pêk kirin.
Pêşniyarên giştî
Gotarek rasterast bi kodê hêsantir dike, lê dema ku pêşveçûna wê pir caran pir girîng e. Hûn dikarin bi avahiyên hêsan re xebitîn, paşê wê hûrgotinên bêtir tevlihev e. Hûn dikarin karûbarên cuda yên xweser bikar bînin ku ji bo raveyên herêmî yên taybet û taybetmendî vekolîn bikin.
Vê baştirîn e ku ji bo pêşveçûna nû ya testa xwe ya pirtûka lîberal û amûra xwe ya xwe biafirîne. Ev riya herî baş e ku ezmûnkirina berbiçav bikim û hîn bibe ku çiqas bi lez zûtirîn û paqijên paqij çêbikin.
Bikaranîna dubareyên cûr û tîmên ku ew, lîstikên taybet ên '*', '+' û braces nîşan dide ku hejmareka paşnavê, divê ji hêla prensîpên hêsan û hêsanî. Ew girîng e ku fikra ku ji destpêka operasyona xwe ya vekirî û heta ku encama wergirtina encamên rasterast bi tevahî hêza înternetê ya gerokê ye. Hemî JavaScript zimanên wekhev ne. Her herwiha dikare di navgîniya xwerûyan de bi şertên xwe yên kesane bînin.
Têkiliyên peywendîdar ne tenê ne tenê rûpelên pirtûk û şêwazê, ew jî bi xwe re ramanên bi rasterastî re bikin. Rûpelê bikaranîna JavaScriptê dikare tenê dema ku ew bi serkeftî li ser gerokên cuda cuda dixebitin.
JavaScript, String, û RegExp
Bi xebata rastê li ser asta muwekîlê, ew e ku, di geroka ziyaretvanê de zimanê zavî JavaScript, divê ji pêşveçûna pêşdebirînê bilindtir. Ji ber ku derfeta ku bi kodê JavaScriptê re bi amûrên xwe yên xwe an jî bi alîkariya sêwirdariyên sêyemîn, kodê kodê, bernameyên serbixwe re derbas dibe.
Lê belê, bi hemû rewşan de, ber pêknehatina taqeta û ne piştgiriyeke baş ji bo pêşvebirinê, a detection error bilez, bi durustî pêşîya. The caran dema ku dibe li ser hesabên kûr bûne, di dema borî de dûr. Niha, pûte bi agahî û line objects hatim da ku roleke girîng bilîze. Hejmara ji rêzika pola, û cewherê xwe de ew bi tenê di dema xwe de û cihê mafê eşkere.
têgînên Regular xurtkirina îmkanên ji xetên, di heman demê de pêwîstî bi rêzgirtina xwe. Debug RegExp di karên xwe de, heta eger gengaz e ku simulate, fikrê ne jî balkêş e.
Famkirin, tevn û mantiqa object RegExp de, tê wateya String object, hevoksaziya û xwebêj ji JavaScript - a code ewle û ewlekirî rast, di operasyona bi îstîqrar ji her rûpel û di malperê de, wekî yekparçeyî.
Similar articles
Trending Now