Komputer, Programming
Javascript, conto expression biasa, mriksa Expression Reguler
Sadurunge tekane saka Hypertext, nanging rodo, nganti dadi cetha sing kita ngirim ora mung katon, nanging nglakoni ing kahanan tartamtu, ing panggonan tartamtu, wonten ing data diganti ing jumlah tengen, ing panelusuran biasanipun lan ngganti fungsi diatur sembarang canggih Programmer. Nggawe mahakarya search seni ing basa program, lan database unggul ing formulir kahanan sampling, dilengkapi karo tata cara disimpen, memicu lan liya liyane saka sampel gedhe banget trek informasi hubungan. Munculé expression biasa kanggo revolusi durung mimpin, nanging cara migunani lan trep kanggo golek lan ngganti informasi. Contone, biasa ungkapan JavaScript email Ngartekno menakake Pendhaftaran pengunjung, ora mbukak website ngirim pesen kanggo alamat nonexistent.
Kanggo wong sing expression JavaScript biasa urutan produmannnyh luwih akeh indexOf () Telpon ing pigura saka siklik conventional lan operator, ora bisa nanging wong iku wis digawe kode script punika kompak, nanging sethitik comprehensible kanggo uninitiated, bisa dadi ambigu.
Obyek RegExp = + engine Cithakan
biasa ungkapan - engine Cithakan +. Kapisan iku bener expression biasa - obyek JavaScript - RegExp, kaloro - a pemain pola, aplikasi iku kanggo baris. Mesin sing ngleksanakake biasa ungkapan kanggo saben programming language beda. Lan senadyan ora kabeh beda sing pinunjul, iku kudu digawe ing atine, uga manawa kanggo kasebut kanthi teliti, mriksa èksprèsi regular sadurunge sawijining operasi.
A notasi khusus nalika nulis biasa ungkapan cukup gampang kanggo nggunakake lan cukup èfèktif, nanging mbutuhake care, neatness lan sabar saka pangembang. Miturut seratan pola expression biasa kudu njaluk digunakake kanggo. Iki ora fad, iku logika mekanisme kanggo nindakaken «JavaScript biasa ungkapan."
pola expression biasa
Diijini rong pilihan:
var expOne = / ABC * / i;
var expTwo = RegExp ( "ABC *", "i");
Biasane digunakake ing cara pisanan. Ing kasus liyane, kuotasi, amarga nggunakake karakter '\', iku kudu oncat dening aturan umum.
'Aku - flag nuduhake "cilik ora perduli". Sampeyan uga bisa nggunakake panji 'g' - «Search Global 'lan' m '- a search multi-line.
Simbol '/' kanggo nunjukaké umum nggunakake cithakan.
Ing wiwitan lan pungkasan saka expression biasa
The '^' nemtokake karakter (s) saka kang kanggo miwiti expression biasa, lan '$' nemtokake karakter (s) kudu ing mburi. Sampeyan kudu ora ngayahi karo wong-wong mau nang expression, ngendi padha duwe beda makna.
Contone,
var eRegExp = anyar RegExp (cRegExp, 'i');
var cRegRes = '';
var sTest = 'AbcZ';
yen (eRegExp.test (sTest)) {
cRegRes + = '- Ya';
} Else {
cRegRes + = '- Ora';
}
var dTestLine = document.getElementById ( 'scTestLine');
dTestLine.innerHTML = 'Expression /' + cRegExp + '/ kanggo saben "' + sTest + '"' + cRegRes.
Unsur 'scTestLine' bakal kasil (global cRegExp nduwèni makna sing cocog):
expression / ^ AbcZ $ / kanggo senar "abcz" - Ya
Yen mbusak 'i' flag, asil punika:
expression / ^ AbcZ $ / kanggo senar "abcz" - Ora ana
Isi expression biasa
A expression biasa urutan karakter, kang topik panelusuran. Expression / QWERTY / looking for entri urutan:
expression / QWERTY / kanggo senar "QWERTY" - Ya
expression / QWERTY / kanggo senar "123qwerty456" - Ya
The '^' Owah-owahan sing ungkapan:
expression / ^ QWERTY / kanggo senar "123qwerty456" - Ora ana
expression / ^ QWERTY / kanggo senar "qwerty456" - Ya
Kajaba iku, kanggo mburi simbol line. biasa ungkapan ngidini kanggo konsistensi: contone, [az], [AZ], [0-9] - kabeh huruf alfabet ing kasus iki utawa tokoh. aksara Russian uga bisa dipigunakaké, nanging kudu mbayar manungsa waé menyang enkoding senar (kang sought sing sought) lan kaca. Asring aksara Russian, uga minangka karakter khusus, iku becike kanggo nyetel kode.
Nalika mbentuk expression biasa bisa nemtokake opsi kanggo ngarsane simbol tartamtu ing lokasi tartamtu, karo sing nomer diwènèhaké minangka nderek: '*' = 0 Ambalan utawa luwih; '+' = 1 utawa luwih Ambalan; {1} padha, minangka '+'; {N} = Ambalan persis n kaping; {N,} = n Ambalan kaping utawa liyane; {N, m} = Ambalan n kanggo kaping m.
Nggunakake kelompok, sampeyan bisa nemtokake karakter nyetel pilihan. Nanging katon kaya iki. [Abcd] = [ad] = saben patang simbol: 'a', 'b', 'c' utawa 'd'. Sampeyan bisa nemtokake digunakake. Sembarang karakter liyane saka sing kasebut ing pesawat: [^ abcd] = karakter liyane saka 'a', 'b', 'c' utawa 'd'. '?' Iku nuduhake ing titik iki simbol ora bisa. '.' nemtokaken karakter liyane saka nuduhake newline ing. Iki '\ n', '\ r', '\ u2028' utawa '\ u2029'. Ekspresi '\ s * | \ S *' = '[\ s | \ S] *' tegese panelusuran kanggo karakter, kalebu newlines.
versi prasaja saka expression biasa
Ekspresi '[\ s | \ S] *' - papan search, utawa lack kuwi, sing kabeh sing ing baris. Ing kasus iki, simbol '\ s' nuduhake papan, lan '\ S' - anané.
Kajaba iku, sampeyan bisa nggunakake '\ d' kanggo nggoleki digit desimal, lan '\ D' nemokake karakter non-numerik. Notasi '\ f', 'r' lan '\ n' cocog karo wangun-feed, tombol bali lan baris-feed.
Ing tab karakter - '\ t', vertikal - '\ v'. Sebutan '\ w' ketemu sembarang karakter Latin alphabet (huruf, angka, lan tandha underscore) = [A-Za-z0-9_].
Sebutan '\ W' iku padha karo kanggo [^ A-Za-z0-9_]. Iki tegese karakter sing ora layang saka aksara, angka, utawa '_'.
karakter Search '\ 0' = nggoleki NUL karakter. Search '\ xHH' utawa '\ uHHHH' = Search kode karakter utawa HHHH HH mungguh. H - heksadesimal digit.
Dianjurake tembung lan werna saka expression biasa
Sembarang expression biasa penting kanggo kasebut kanthi teliti, dites ing macem-macem versi larik.
Karo pengalaman nggawe kesalahan expression biasa bakal dadi luwih cilik, nanging Nanging kudu tansah katahan ing atine sing kawruh dhewe saka aturan nulis biasa ungkapan ora bisa dadi bener, utamané nalika "mangsa biasa" ditransfer saka basa siji menyang basa liyane.
Milih antarane klasik (pratondo pas) lan versi prasaja saka expression biasa, iku luwih apik kanggo seneng pisanan. Sawise kabeh, ing klasik tansah cetha dituduhake yen sought. Yen expression biasa utawa search senar duwe aksara Russian, kudu mimpin kanggo siji enkoding kabeh garis lan kaca kang makaryakke golek JavaScript-kode performs expression biasa.
Nalika ana Processing karakter, aksara non-Latin, iku ndadekake pangertèn kanggo nimbang pratondo kode karakter, ora karakter piyambak.
Nalika nindakaken kalkulus search in JavaScript expression biasa kudu kasebut kanthi teliti, dicenthang supaya. Iku utamané penting kanggo ngontrol enkoding karakter.
Ing kurung ing expression biasa
Ing kelompok netepake opsi kanggo simbol, kang kudu utawa bisa uga ora ing sawijining panggonan, lan babak - urutan Varian. Nanging iki mung aturan umum. Saka iku ana istiméwa, nanging ana macem-macem saka sudhut aplikasi.
var cRegExp = "[az] * (png | jpg | gif).",
var eRegExp = anyar RegExp (cRegExp, 'i');
var cRegRes = '';
var sTest = 'picture.jpg';
yen (eRegExp.test (sTest)) {
cRegRes + = '- Ya';
} Else {
cRegRes + = '- Ora';
}
asil:
/[az]*.(png|jpg|gif)/ expression kanggo baris "picture.jpg" - Ya
expression /^[ad][az]*.(png|jpg|gif)/ kanggo "picture.jpg" line - Ora
/^[ad][az]*.(png|jpg|gif)/ expression kanggo baris "apicture.jpg" - Ya
expression /^[ad][az]*.(png|jpg|gif)/ kanggo "apicture.jg" line - Ora
Sampeyan kudu nyatet sing kabeh, banjur tanda bintang uga saiki nul kaping. Iki tegese "mangsa biasa" uga bisa ing cara sing ora dikarepke paling.
Priksa RegExp - Testing email
Ing expression JavaScript biasa dijupuk loro cara, test lan Exec, lan bisa digunakake ing garis obyek (String) ing cara sing (fungsi): search, pamisah, ngganti lan cocog.
cara test wis tontonan, iku ngijini sampeyan kanggo mriksa bener saka expression biasa. Cara Result: bener / salah.
Coba ing ngisor iki JavaScript biasa ungkapan. Priksa email saka nomer "angel, nanging mesthi":
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}) ) $ /;
senar var sTest ='SlavaChip@sci.by 'menehi bener, banjur ana senar iki ing email-alamat bener. Audit dilakokaké dening eRegExp.test (sTest).
praktis dienggo: perawatan saka e-Mail
cara Exec nyedhiyakake Uploaded output, nelpon:
var aResult = eRegExp.exec (sTest);
cRegRes = '
' + aResult.length + '
';
kanggo (var i = 0; i
';
}
Iku menehi asil ing ngisor iki:
9
Slava.Chip@sci.by
Slava.Chip
Slava.Chip
.Chip
undefined
sci.by
undefined
sci.by
sci.
Cara bisa Kajaba. Apike kanggo mriksa wong metu dhewe. Development lan nggunakake ungkapan biasa, iku seng di pengeni kanggo bisa ing laku, ing Nyalin kode ora tansah saranake kene.
Popular "mangsa biasa"
JavaScript expression biasa diwenehi kanggo Email ora mung ana akeh opsi liyane gampang. Contone, /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Nanging, pawujudan iki njupuk menyang akun ora kabeh embodiments saka rekaman alamat email.
Mesti wae, sampeyan kudu ndeleng pengalaman kolega, kanggo njelasno carane ngajokaken sing sadurunge kanggo desain dhewe ing JavaScript biasa ungkapan. Nanging ana sawetara kangelan. We ngirim ora lali sing JavaScript biasa ungkapan (conto nalika Nyalin) bisa duplikat karakter penting: '\', '/' utawa kuotasi. Iki bakal mimpin kanggo kesalahan, kang bisa nelusuri dawa.
Iku penting kanggo njupuk menyang akun biasanipun "ukuran manungsa." Sawise JavaScript expression biasa formal kanggo telpon, kang uga ing manca (wong), iku diwenehi ing cara: 123-45-67, (29) 1234567, 80291234567 utawa 375291234567. Lan iku kabeh nomer padha. Ejaan kaping pola ora tansah ditrima, lan fiksasi kaku saka aturan nulis nomer bisa nggawe sumelang rasah utawa Watesan. Pilihan / ^ \ d [\ d \ (\) \ -] {4,14} \ d $ / i punika cocok kanggo paling kasus, sampeyan mriksa nomer telpon.
Yen sampeyan pengin nggawe biasa ungkapan JavaScript, mung kir digit, sing cilik prasaja mbutuhake katrangan. Iku kudu dianggep ongko utawa cilik, seratan ilmiah, utawa nomer normal, positif utawa negatif. Sampeyan uga bisa njupuk menyang akun anane simbol itungan, nomer digit sawise titik desimal lan divisi saka kabèh bagéyan saka nomer ing triad ing.
Expression / ^ \ d + $ / i mriksa mung nomer lan expression /^\d+\.\d+$/i ngidini nggunakake titik kanggo nunjukaké sisih cilik saka nomer.
Ing JavaScript mriksa biasa ungkapan bisa digunakake kanggo nunjukaké format saka input data hard, kang penting, utamané nalika ngetik profil, data passport, lan alamat legal t. D.
Mriksa tanggal - prasaja kanggo Komplek
Coba liyane JavaScript biasa ungkapan. Conto kanggo tanggal, minangka kanggo nomer nomer telephone makili pilihan antarane rigidity lan keluwesan. Tanggal acara - siji saka data penting, kang asring kudu diterbitake. Nanging mbenakake input ing format tartamtu: "dd-mm-YYYY 'utawa' d.m.gg 'asring ndadékaké kanggo dissatisfaction customer. Transisi saka kolom input saka dina-kanggo-sasi, kebak HTML-wangun klasik, ora bisa njupuk Panggonan nalika ngetik mung siji digit, lan input liya bisa dadi angel. Contone, ing lapangan dina dipuntepangaken 3 lan sabanjuré nomer 2 ora ngganti pisanan, lan lantaran kanggo dheweke 32, kang, mesthi, bakal nimbulaké nyaman.
Efficiency lan penak biasa ungkapan ateges gumantung ing construction general dialog karo manca. Ing sawijining kasus, kanggo nunjukaké tanggal iku saranake kanggo nggunakake siji lapangan input saka wangun, ing kasus liyane iku perlu kanggo nyedhiyani kanggo macem-macem kothak kanggo dina, sasi lan taun. Nanging banjur apa tambahan "biaya saka kode" kanggo mriksa taun kabisat, nomer sasi, ing sawetara dina ing wong.
Telusuri lan ngganti, memori expression biasa
JavaScript ngganti (biasa ungkapan) nggunakake cara saka obyek String, lan kita bakal nemokake nilai lan ngganti langsung. Iki migunani kanggo mbeneraké kasalahan typing, ngowahi isi kothak wangun lan kanggo nindakake data saka siji format presentation liyane.
var cRegExp = / ([a-z] +) \ s ([a-z] +) \ s ([a-z] +) / i; // nalika nggoleki telung 'variabel'
var sTest = 'Kaca iki apik!';
var cRegRes = sTest.replace (cRegExp, "$ 2, $ 3, $ 1");
var dTestLine = document.getElementById ( 'scTestLine');
'Expression' dTestLine.innerHTML = + cRegExp + 'kanggo senar "' + sTest + '" nguripake:' + cRegRes;
asil:
expression / ([az] +) \ s ([az] +) \ s ([az] +) / i kanggo baris "artikel iki apik!" metu: artikel apik, iki!
Nalika Performing saben pasangan kurung nyimpen asil ing 'global' $ n, ngendi n - pasangan krenjang ($ 1, $ 2, ...). Boten kados conventional, kene global Nomer 1, ora 0.
Rekomendasi Umum
expression biasa simplifies kode, nanging wektu kanggo berkembang asring ndadekake prabédan. Sampeyan bisa miwiti karo designs prasaja lan banjur digawe kanggo gabungke menyang liyane ungkapan Komplek. Sampeyan bisa nggunakake maneka warna layanan online kanggo nyoba biasa ungkapan utawa pribadi lokal khusus.
Pilihan paling bakal nggawe perpustakaan dhewe saka biasa ungkapan lan pribadi dhewe kanggo nyoba pembangunan anyar. Iki cara paling apik kanggo consolidate pengalaman lan kanggo mangerteni carane cepet mbangun desain dipercaya lan nyaman.
Nggunakake Ambalan karakter lan strings, sing, karakter khusus '*', '+' lan penyonggo, nuduhake nomer repetitions kudu dipandu dening prinsip saka gamblang lan expediency. Penting éling sing expression biasa kanggo awal, lan kanggo njaluk asil tanggung ing daya saka engine digunakake dening browser. Ora kabeh basa sing padha karo kanggo JavaScript. Saben browser bisa nggawa sing pilihan pribadi ing interpretasi saka biasa ungkapan.
Kompatibilitas ora mung kaca lan gaya sheets, kanggo biasa ungkapan, iku uga wis apa. kaca migunakake JavaScript, bisa dianggep uga-fungsi mung nalika wis kasil makarya ing macem-macem browser.
JavaScript, String lan RegExp
Miturut proyek tengen ing tingkat klien, sing, ing browser Pengunjung ing JavaScript, iku mbutuhake skills dhuwur saka pangembang. cukup dawa sing duwe kesempatan kanggo debug JavaScript-kode browser kang dana dhewe utawa karo bantuan saka ekstensi pihak katelu, kode editors, program sawijining.
Nanging, ora kabeh kasus, debugger bisa nangani lan nyedhiyani apik support pangembang, deteksi kesalahan cepet, ndeteksi bottlenecks. Kaping nalika komputer wis fokus ing petungan, ing past tebih. Saiki, mbayar manungsa waé khusus kanggo informasi lan baris obyek wis teka kanggo muter peran pinunjul. Jumlah strings baja, lan alam bener sing padha catetan mung ing wektu tengen lan Panggonan tengen.
biasa ungkapan kuat sing kamungkinan saka garis, nanging mbutuhake poto bab. Debug RegExp ing karya, malah yen bisa kanggo simulasi, idea ora banget menarik.
Understanding struktur lan logika obyek RegExp, tegesipun barang String, ukara lan semantik saka JavaScript - kode aman bener, operasi stabil saben kaca lan ing situs sarta kabèh.
Similar articles
Trending Now