KomputerProgramming

Javascript, conto babasan nu biasa, pariksa Babasan Biasa

Sateuacan mecenghulna basa hiperteks, tapi rada, nepika janten jelas nu urang teu kudu ngan kasampak, tapi pikeun ngalakukeunana dina kaayaan nu tangtu, di hiji tempat nu tangtu, dina kaayaan data robah dina kuantitas katuhu, anu pilarian dawam sarta ngaganti fungsi dikelompokeun sagala canggih programmer. Jieun masterpieces of pilarian seni dina basa programming, sarta database excelled dina wangun kaayaan sampling, dilengkepan prosedur disimpen, micu tur lain hartina sampel gede pisan lagu informasi relational. Penampilan babasan nu biasa keur revolusi teu diterangkeun, tapi éta cara mangpaat tur merenah pikeun manggihan tur ngaganti informasi. Contona, ungkapan biasa JavaScript email nyata simplify pendaptaran nu datang, ulah muka website ngirim pesen ka alamat nonexistent.

Disebutkeun yen ekspresi JavaScript biasa nyaéta urutan produmannnyh leuwih hadé indexOf () nyaéta panggero dina Pigura siklik konvensional sarta operator, teu bisa tapi disebutkeun yen eta geus nyieun kodeu Aksara téh kompak, tapi saeutik comprehensible ka uninitiated, tiasa unambiguously.

Obyek RegExp = + mesin citakan

ungkapan biasa - mangrupakeun mesin citakan +. Kahiji sabenerna ngarupakeun ekspresi biasa - obyék JavaScript - RegExp, nu kadua - a pamaen pola, panawaran ka jalur. Mesin anu nerapkeun ungkapan biasa pikeun tiap basa programming nu béda. Sarta sanajan teu kabeh Bedana signifikan, nya kudu ditanggung dina pikiran, kitu ogé pastikeun taliti pariksa babasan nu biasa saméméh operasi na.

A notasi husus nalika nulis ungkapan biasa cukup gampang ngagunakeun tur rada efektif, tapi merlukeun perawatan, neatness sarta kesabaran ti developer nu. Ku notasi pola ekspresi biasa kudu neangan dipaké pikeun. Ieu teu fad, nya eta logika mékanisme pikeun ngalaksanakeun «JavaScript ungkapan biasa."

pola ekspresi biasa

Diwenangkeun dua pilihan:

var expOne = / ABC * / i;

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

Ilaharna deui dipaké metoda munggaran. Dina kasus kadua, nu tanda kutip, sabab mun nganggo karakter '\', eta kudu lolos ku aturan umum.

'I' - bandéra nunjukkeun "bisi merhatikeun". Anjeun oge bisa make umbul 'g' - «Search Global 'sarta' m '- a pilarian multi-garis.

Lambang '/' pikeun nandaan umum ngagunakeun citakan.

Awal jeung akhir tina éksprési nu biasa

The '^' ngahartikeun karakter (s) ti mana ngamimitian babasan nu biasa, sarta '$' nangtukeun mana karakter (s) kedah janten dina tungtungna. Anjeun teu kudu ékspérimén kalawan aranjeunna di jero hiji éksprési, dimana maranéhna boga harti béda.

Contona,

var eRegExp = anyar RegExp (cRegExp, 'i');

var cRegRes = '';

var sTest = 'AbcZ';

lamun (eRegExp.test (sTest)) {

cRegRes + = '- Sumuhun';

} Nabi {

cRegRes + = '- No';

}

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

dTestLine.innerHTML = 'Babasan /' + cRegExp + '/ keur sakaligus "' + sTest + '"' + cRegRes.

Unsur 'scTestLine' bakal hasil (variabel cRegExp ngabogaan harti pakait):

éksprési / ^ AbcZ $ / keur string "abcz" - Sumuhun

Lamun nyabut 'i' bandéra, hasilna nyaéta:

éksprési / ^ AbcZ $ / keur string "abcz" - No

Eusi ekspresi biasa

Hiji ungkapan biasa mangrupakeun runtuyan karakter, nu subyek teangan. Éksprési / QWERTY / pilari Éntri anu runtuyan kieu:

éksprési / QWERTY / keur string "QWERTY" - Sumuhun

éksprési / QWERTY / keur string "123qwerty456" - Sumuhun

The '^' parobahan anu ungkapan:

éksprési / ^ QWERTY / keur string "123qwerty456" - No

éksprési / ^ QWERTY / keur string "qwerty456" - Sumuhun

Nya kitu keur ahir simbol garis. ungkapan biasa ngawenangkeun keur konsistensi: contona, [AZ], [AZ], [0-9] - sagala hurup tina hurup dina hal ieu atawa inohong. hurup Rusia ogé bisa dipaké, tapi kudu nengetan jeung encoding of string (anu geus ditéang anu ditéang) jeung kaca. Mindeng hurup Rusia, kitu ogé hurup husus, ieu leuwih hade pikeun ngeset Konci.

Nalika ngabentuk ekspresi biasa bisa nangtukeun pilihan pikeun ayana lambang tangtu dina lokasi nu tangtu, kalawan jumlah maranéhanana dibéré saperti kieu: '*' = 0 pengulangan atawa leuwih kali; '+' = 1 atawa leuwih kali pengulangan; {1} nyaeta sami, sakumaha '+'; {N} = pengulangan persis n kali; {N,} = n pengulangan kali lipet; {N, m} = pengulangan n ka kali m.

Ngagunakeun kurung, Anjeun bisa netepkeun teh karakter diatur tina pilihan. Sigana mah ieu. [ABCD] = [iklan] = unggal opat simbol: 'a', 'b', 'c' atawa 'd'. Anjeun tiasa nangtukeun disebutkeun. Sagala karakter lian ti eta dieusian di set dina: [^ ABCD] = karakter wae lian ti 'a', 'b', 'c' atawa 'd'. '?' Ieu nunjukkeun yén dina titik ieu simbol teu bisa. '.' hususna karakter wae lian ti nembongkeun newline nu. Ieu '\ n', '\ r', '\ u2028' atawa '\ u2029'. Babasan '\ s * | \ S *' = '[\ s | \ S] *' hartina milarian karakter wae, kaasup newlines.

versi Basajan ekspresi biasa

Babasan '[\ s | \ S] *' - spasi pilarian, atawa kurangna tujuanana, nyaeta sagala rupa nu geus di jalur. Dina hal ieu, anu simbol '\ s' nunjukkeun hiji spasi, jeung '\ S' - henteuna Na.

Nya kitu, anjeun tiasa nganggo '\ d' pikeun milari nu digit decimal, sarta '\ D' manggihan karakter non-numerik. Notasi '\ f', 'r' sarta '\ n' pakait jeung bentuk-feed, enter na garis-feed.

Tab karakter - '\ t', nangtung - '\ v'. Designation '\ w' manggih wae karakter Latin alfabét (hurup, digit, sarta tanda underscore) = [A-za-z0-9_].

Designation '\ W' sarua jeung [^ A-za-z0-9_]. Ieu ngandung harti sagala karakter nu teu surat alfabét, angka, atanapi '_'.

Karakter Search '\ 0' = search NUL karakter. Pilarian '\ xHH' atawa '\ uHHHH' = Search kode karakter atanapi HHHH HH mungguh. H - hexadecimal angka.

Disarankeun wording jeung coding ekspresi biasa

Sagala ekspresi biasa anu penting pikeun taliti dites on versi béda tina barisan.

Jeung pangalaman tina nyieun hiji kasalahan ekspresi biasa bakal leuwih leutik, tapi Tapi kedah salawasna diteundeun di pikiran yén pangaweruh sorangan aturan nulis ungkapan biasa teu bisa jadi bener, utamana lamun anu "Usum biasa" ditransferkeun ti hiji basa ka nu sejen.

Milih antara Palasik (indikasi pasti) jeung versi saderhana sahiji ekspresi biasa, eta leuwih hade mun resep kahiji. Barina ogé, dina klasik sok jelas dituduhkeun yen duanana ditéang. Mun babasan nu biasa atanapi pilarian string gaduh hurup Rusia, kudu nuju ka hiji single panyandian sakabeh garis na kaca dina nu ngoperasikeun manggihan JavaScript-kode ngalaksanakeun ekspresi biasa.

Lamun aya hiji processing karakter, hurup non-Latin, ngajadikeun rasa mertimbangkeun indikasi tina Konci karakter, teu karakter diri.

Nalika ngalaksanakeun éta algoritma pilarian di JavaScript ekspresi biasa kedah taliti dipariksa jadi. Ieu hal penting pikeun ngadalikeun encoding karakter.

Kurung di ekspresi biasa

Kurung nangtukeun pilihan pikeun simbol nu kedah janten atawa bisa jadi di hiji tempat nu tangtu, sarta buleud - runtuyan varian. Tapi ieu téh ukur aturan umum. Ti dinya taya iwal, tapi aya rupa-rupa aplikasi.

var cRegExp = "[AZ] * (PNG | jpg | GIF).";

var eRegExp = anyar RegExp (cRegExp, 'i');

var cRegRes = '';

var sTest = 'picture.jpg';

lamun (eRegExp.test (sTest)) {

cRegRes + = '- Sumuhun';

} Nabi {

cRegRes + = '- No';

}

hasilna:

/[az]*.(png|jpg|gif)/ ekspresi pikeun garis "picture.jpg" - Sumuhun

éksprési /^[ad][az]*.(png|jpg|gif)/ pikeun "picture.jpg" garis - No

/^[ad][az]*.(png|jpg|gif)/ ekspresi pikeun garis "apicture.jpg" - Sumuhun

éksprési /^[ad][az]*.(png|jpg|gif)/ pikeun "apicture.jg" garis - No

Ieu kudu dicatet yén sadayana, lajeng tanda asterisk mungkin hadir enol kali. Ieu ngandung harti yén "Usum biasa" bisa gawe di cara kaduga sahenteuna.

Pariksa RegExp - nguji email

Dina ekspresi JavaScript biasa diala dua métode, test na exec, sarta bisa dipaké dina garis objék (string) dina padika maranéhanana (fungsi): pilarian, pamisah, ngaganti jeung cocok.

Metoda test geus kungsi ngabuktikeun, eta ngidinan Anjeun pikeun pariksa correctness tina éksprési nu biasa. Metoda Hasil: leres / palsu.

Mertimbangkeun di handap JavaScript ungkapan biasa. Pariksa email ti Jumlah "hésé, tapi can tangtu":

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

a string var sTest ='SlavaChip@sci.by 'méré leres, teras aya string ieu teh email-alamatna bener. Inok nu ieu dilakukeun ku eRegExp.test (sTest).

pamakéan praktis: perlakuan e-Surat

Metoda Exec nyadiakeun Asép Sunandar Sunarya output, nelepon:

var aResult = eRegExp.exec (sTest);

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

Méré hasil di handap:

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

Métode séjén dianggo kitu. Disarankeun Cek aranjeunna kaluar diri. Ngembangkeun sarta pamakéan ungkapan biasa, éta desirable digawekeun dina praktekna, anu Niron kode teu salawasna sasaena dieu.

Populér "Usum biasa"

JavaScript ekspresi biasa dibikeun ka email teu ukur aya loba pilihan leuwih gampang. Contona, /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Sanajan kitu, perwujudan ieu nyokot kana rekening moal kabeh embodiments tina catetan alamat surélék.

Tangtu, anjeun kudu nempo pangalaman kolega, cara analisa kumaha diusulkeun maranéhna saméméh mendesain sorangan dina JavaScript ungkapan biasa. Tapi aya sababaraha kasusah. Kami teu kedah poho yen hiji JavaScript ungkapan biasa (conto lamun nyalin) bisa jadi gaduh panulisan Hurup penting: '\', '/' atawa tanda petik. Ieu bakal ngakibatkeun kasalahan, nu anjeun tiasa milarian panjang.

Kadé tumut kana akun dawam "dimension manusa". Saatos JavaScript ekspresi biasa formal keur telepon, nu bisa jadi nganjang (jalma), eta dirumuskeun dina cara: 123-45-67, (29) 1234567, 80291234567 atanapi 375291234567. Tur éta sakabéh jumlah anu sarua. Éjahan sababaraha pola henteu salawasna bisa ditarima, sarta fiksasi kaku tina aturan pikeun nulis nomer bisa nyieun ngarareunah perlu atawa larangan. Pilihan / ^ \ d [\ d \ (\) \ -] {4,14} \ d $ / i anu cocog pikeun kalolobaan kasus Anjeun pariksa nomer telepon Anjeun.

Lamun hayang nyieun hiji ungkapan biasa JavaScript, ngan cék digit, sanajan mangrupa hal basajan sapertos merlukeun klarifikasi. Ieu kudu dianggap hiji integer atanapi fractional, notasi ilmiah, atawa jumlah normal, positif atawa négatif. Anjeun oge bisa tumut kana akun ayana lambang mata uang, jumlah tina digit sanggeus titik decimal jeung division tina sakabeh bagian tina jumlah on neng.

Éksprési / ^ \ d + $ / i pariksa ukur angka na ekspresi /^\d+\.\d+$/i ngamungkinkeun pamakéan titik pikeun nandaan bagian fractional tina jumlahna.

Dina JavaScript mariksa ungkapan biasa bisa dipaké pikeun nandaan format tina input data teuas, nu penting, utamana lamun ngasupkeun propil, data paspor, jeung alamat légal t. D.

Pariksa kaping - basajan ka komplek

Mertimbangkeun sejen JavaScript ungkapan biasa. Conto to date, sakumaha keur Jumlah nomer telepon ngagambarkeun pilihan antara rigidity sarta kalenturan. Tanggal acara - salah sahiji data penting, nu mindeng kudu jadi dikaluarkeun. Tapi ngaropéa asupan dina format husus: "DD-mm-yyyy 'atawa' d.m.gg 'mindeng ngabalukarkeun dissatisfaction customer. Transisi tina widang input ti dinten-ka-bulan, pinuh ku HTML-formulir Palasik, moal bisa lumangsung nalika anjeun ngasupkeun ngan hiji angka, sarta asupan kadua tiasa hésé. Contona, dina widang poé éta diwanohkeun 3 sarta salajengna nomer 2 teu ngaganti kahiji, sarta geus attributed nya 32, nu, tangtosna, bakal ngabalukarkeun kasulitan.

Efisiensi tur genah tina ungkapan biasa dasarna gumantung kana konstruksi umum tina dialog sareng nganjang ka. Dina hiji hal, mun nandaan titimangsa dina ieu sasaena ngagunakeun hiji widang input bentuk, dina kasus lianna perlu nyadiakeun keur sagala widang pikeun poé, bulan tur taun. Tapi lajeng wae tambahan "waragad kode" pikeun pariksa taun kabisat, jumlah tina bulan, jumlah poé dina aranjeunna.

Milarian tur ngaganti, memori ekspresi biasa

JavaScript ngaganti (ungkapan biasa) ngagunakeun metoda objek string, sarta ngidinan urang pikeun manggihan nilai jeung ngarobah éta langsung. Ieu dipake keur koréksi kasalahan ketikan, ngédit eusi huma formulir jeung ngarobah data ti hiji format presentasi ka nu sejen.

var cRegExp = / ([a-z] +) \ s ([a-z] +) \ s ([a-z] +) / i; // lamun néangan aya tilu 'variabel'

var sTest = 'artikel ieu téh alus!';
var cRegRes = sTest.replace (cRegExp, "$ 2, $ 3, $ 1");

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

'Ekspresi' dTestLine.innerHTML = + cRegExp + 'pikeun string "' + sTest + '" giliran:' + cRegRes;

hasilna:

éksprési / ([AZ] +) \ s ([AZ] +) \ s ([AZ] +) / i pikeun jalur "artikel ieu téh alus!" kaluar: artikel anu alus, ieu!

Nalika ngajalankeun unggal pasangan kurung nyimpen hasil dina 'variabel' $ n, dimana n - Jumlah pasangan bracket ($ 1, $ 2, ...). Teu kawas konvensional, didieu variabel panomeran téh 1, moal 0.

saran umum

éksprési biasa simplifies kode, tapi waktu ka ngembangkeun eta mindeng ngajadikeun bédana a. Anjeun tiasa mimitian ku desain basajan lajeng dijieun pikeun ngagabungkeun kana beuki ungkapan kompléks. Anjeun tiasa make rupa layanan online pikeun nguji ungkapan biasa atawa parabot lokal husus.

Pilihan pangalusna baris nyieun perpustakaan sorangan ungkapan biasa na parabot sorangan pikeun nguji kamajuan anyar. Ieu cara pangalusna pikeun ngumpulkeun pangalaman jeung pikeun neuleuman kumaha carana gancang ngawangun desain dipercaya jeung nyaman.

Ngagunakeun pengulangan karakter sarta string atawa, nyaeta, karakter husus '*' '+' na braces, nunjukkeun Jumlah pangulangan kudu dipandu ku prinsip kesederhanaan jeung expediency. Kadé nyadar yén ekspresi biasa ka awal gawé, sarta pikeun meunangkeun hasilna mangrupa sagemblengna dina kakawasaan mesin dipaké ku panyungsi kana. Henteu sakabéh basa anu sarua jeung JavaScript. Unggal browser bisa mawa maranéhna preferensi pribadi dina tafsir ungkapan biasa.

Kasaluyuan henteu ngan kaca sarta gaya cadar, mun ungkapan biasa, éta ogé geus ngalakonan. Kaca ngagunakeun JavaScript, bisa dianggap well-fungsi ngan lamun geus hasil dikeureuyeuh rupa-rupa panyungsi.

JavaScript, string na RegExp

Ku proyek katuhu dina tingkat klien, nyaeta, dina browser anu nganjang di JavaScript, merlukeun kaahlian luhur pamekar nu. cukup lila anjeun boga kasempetan pikeun debug JavaScript-kode browser urang dana sorangan atawa kalayan bantuan ekstensi pihak-katilu, kode rai, program bebas.

Sanajan kitu, teu sakabeh kasus, debugger nu tiasa ngadamel sarta nyadiakeun rojongan alus pikeun pamekar, hiji beungeut kasalahan gancang, ngadeteksi bottlenecks. The kali nalika komputer geus fokus kana itungan, dina mangsa jauh ka. Ayeuna, nengetan husus ka Inpo jeung garis objék geus datangna maén peran signifikan. Jumlah senar baja, jeung alam leres maranéhna aranjeunna manifest ngan di waktu katuhu jeung tempat ka katuhu.

ungkapan biasa nguatkeun kamungkinan garis, tapi merlukeun diri hormat. Debug RegExp dina karyana, sanajan kasebut nyaéta dimungkinkeun pikeun simulate, gagasan teu teuing metot.

Ngarti kana struktur jeung logika objek RegExp, hartina obyek string, sintaksis jeung semantik tina JavaScript - kode aman tur aman leres, operasi stabil unggal kaca na situs sakabéhna.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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