KomputerPengaturcaraan

Javascript, contoh ungkapan biasa, daftar Ungkapan Biasa

Sebelum kedatangan bahasa hiperteks, tetapi sebaliknya, sehingga ia menjadi jelas bahawa kita tidak boleh hanya melihat, tetapi untuk berbuat demikian di bawah syarat-syarat tertentu, di tempat yang tertentu, di bawah data berubah dalam kuantiti yang betul, carian biasa dan menggantikan fungsi menganjurkan sebarang canggih programmer. Mencipta karya-karya carian art dalam bahasa-bahasa pengaturcaraan, pangkalan data dan cemerlang dalam bentuk syarat persampelan, dilengkapi dengan prosedur yang disimpan, pencetus dan lain-lain cara sampel besar trek maklumat hubungan. Kemunculan ungkapan biasa kepada revolusi tidak membawa, tetapi ia adalah cara yang berguna dan mudah untuk mencari dan menggantikan maklumat. Sebagai contoh, ungkapan biasa JavaScript e-mel ketara memudahkan pendaftaran pelawat, tidak memuatkan laman web menghantar pesanan ke alamat yang tidak wujud.

Untuk mengatakan bahawa ungkapan biasa JavaScript adalah urutan produmannnyh lebih baik indexOf () panggilan dalam rangka kitaran konvensional dan pengusaha, tidak boleh tetapi mengatakan bahawa ia telah membuat kod skrip adalah padat, tetapi sedikit difahami yang belum tahu, boleh menjadi jelas.

Objek RegExp = + enjin template

ungkapan biasa - adalah enjin template +. Yang pertama adalah sebenarnya ungkapan biasa - JavaScript objek - RegExp, yang kedua - template pelaku ini, memohon kepada garis. Enjin yang melaksanakan ungkapan biasa untuk setiap bahasa pengaturcaraan adalah berbeza. Dan walaupun tidak semua perbezaan adalah penting, ia perlu diingat, serta pastikan anda menyemak dengan teliti ungkapan biasa sebelum operasinya.

A notasi khas semasa menulis ungkapan biasa adalah agak mudah untuk digunakan dan agak berkesan, tetapi ia memerlukan penjagaan, kekemasan dan kesabaran daripada pemaju. Oleh notasi pola ungkapan biasa perlu mendapatkan digunakan untuk. Ini bukan trend, ia adalah logik satu mekanisme untuk melaksanakan «JavaScript ungkapan biasa."

corak ungkapan biasa

Dibenarkan dua pilihan:

var expOne = / abc * / i;

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

Biasanya ia digunakan kaedah pertama. Dalam kes kedua, sebut harga, kerana untuk menggunakan aksara '\', ia mesti melarikan diri dengan kaedah-kaedah am.

'Saya' - bendera yang menunjukkan "kes tidak sensitif". Anda juga boleh menggunakan 'g' bendera - «Carian Global 'dan' m '- satu carian berbilang talian.

Simbol '/' untuk menunjukkan perkara biasa untuk menggunakan templat.

Awal dan akhir ungkapan biasa

The '^' mentakrifkan watak (s) dari mana untuk memulakan ungkapan biasa, dan '$' menentukan watak (s) mestilah pada akhir. Anda tidak boleh bereksperimen dengan mereka di dalam satu ungkapan, di mana mereka mempunyai makna yang berbeza.

Sebagai contoh,

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

cRegRes var = '';

var sTest = 'AbcZ';

jika (eRegExp.test (sTest)) {

cRegRes + = '- Ya';

} Lain {

cRegRes + = '- Tidak';

}

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

dTestLine.innerHTML = 'Expression /' + cRegExp + '/ untuk baris "' + sTest + '"' + cRegRes.

Elemen 'scTestLine' akan menyebabkan (cRegExp berubah-ubah mempunyai erti yang bersamaan):

ungkapan / ^ AbcZ $ / untuk rentetan "abcz" - Ya

Jika anda mengeluarkan 'i' bendera, hasilnya adalah:

ungkapan / ^ AbcZ $ / untuk rentetan "abcz" - Tiada

Kandungan ungkapan biasa

Ungkapan nalar ialah jujukan aksara, yang menjadi subjek carian. Ungkapan / qwerty / mencari kemasukan adalah urutan ini:

ungkapan / qwerty / untuk rentetan "qwerty" - Ya

ungkapan / qwerty / untuk rentetan "123qwerty456" - Ya

Perubahan '^' adalah ungkapan:

ungkapan / ^ qwerty / untuk rentetan "123qwerty456" - Tiada

ungkapan / ^ qwerty / untuk rentetan "qwerty456" - Ya

Begitu juga, untuk akhir simbol garis. ungkapan biasa membolehkan konsisten: contohnya, [az], [AZ], [0-9] - semua huruf abjad dalam kes ini atau angka. huruf Rusia juga boleh digunakan, tetapi perlu memberi perhatian kepada pengekodan tali (yang dicari yang dicari) dan halaman. Sering huruf Rusia, serta aksara khas, ia adalah lebih baik untuk menetapkan kod.

Apabila membentuk ungkapan biasa boleh menentukan pilihan untuk kehadiran simbol-simbol tertentu di lokasi yang tertentu, dengan bilangan mereka diberikan seperti berikut: '*' = 0 pengulangan kali atau lebih; '+' = 1 atau lebih kali ulangan; {1} adalah sama, kerana '+'; {N} = pengulangan tepat n masa; {N} = n pengulangan kali atau lebih; {N, m} = pengulangan n untuk kali m.

Menggunakan kurungan, anda boleh menentukan watak set pilihan. Ia kelihatan seperti ini. [Abcd] = [iklan] = setiap empat simbol: 'a', 'b', 'c' atau 'd'. Anda boleh menentukan sebaliknya. Apa-apa sifat lain daripada yang ditentukan dalam set ini: [^ abcd] = apa-apa sifat lain daripada 'a', 'b', 'c' atau 'd'. '?' Ia menunjukkan bahawa pada ketika ini simbol tidak boleh. '.' menentukan apa-apa sifat lain daripada menunjukkan newline itu. , Ini '\ n', '\ r' '\ u2028' atau '\ u2029'. Ungkapan '\ s * | \ S *' = '[\ s | \ S] *' bermaksud pencarian sebarang bentuk, termasuk baris baru.

versi dipermudahkan ungkapan biasa

Ungkapan '[\ s | \ S] *' - ruang carian, atau kekurangan itu, yang adalah semua yang di talian. Dalam kes ini, simbol '\ s' menunjukkan ruang, dan '\ S' - ketiadaannya.

Begitu juga, anda boleh menggunakan '\ d' untuk mencari angka perpuluhan, dan '\ D' mencari seorang aksara bukan angka. Notasi '\ f', 'r' dan '\ n' sesuai dengan bentuk-feed, kembalian penyorong dan barisan makanan.

Tab watak - '\ t', menegak - '\ v'. Penetapan '\ w' mendapati mana-mana watak Latin abjad (huruf, angka, dan tanda garis bawah) = [A-Za-z0-9_].

Penetapan '\ W' adalah bersamaan dengan [^ A-Za-z0-9_]. Ini bermakna mana-mana watak yang bukan huruf dalam abjad, nombor, atau '_'.

Carian aksara '\ 0' = carian aksara NUL. Search '\ xHH' atau masing-masing = Cari kod aksara atau HHHH HH 'uHHHH \'. H - digit perenambelasan.

kata-kata yang disyorkan dan pengekodan ungkapan biasa

Apa-apa ungkapan yang kerap adalah penting untuk berhati-hati diuji pada versi baris.

Dengan pengalaman mewujudkan ralat ungkapan biasa akan menjadi lebih kecil, namun perlu sentiasa diingat bahawa pengetahuan mereka sendiri daripada kaedah-kaedah menulis ungkapan biasa tidak benar, terutamanya apabila "musim biasa" dipindahkan dari satu bahasa kepada bahasa lain.

Memilih antara klasik (petunjuk tepat) dan versi mudah ungkapan biasa, ia adalah lebih baik untuk memilih yang pertama. Lagipun, dalam klasik sentiasa jelas menunjukkan bahawa kedua-dua dicari. Jika ungkapan biasa atau rentetan carian mempunyai huruf Rusia, seharusnya membawa kepada satu pengekodan semua garis dan halaman yang beroperasi mencari JavaScript-kod melakukan ungkapan biasa.

Apabila terdapat pemprosesan huruf, abjad bukan Latin, ia masuk akal untuk menganggap petunjuk kod aksara, bukan watak-watak diri mereka sendiri.

Apabila melaksanakan algoritma carian dalam JavaScript ungkapan biasa perlu diperiksa dengan teliti. Ia amat penting untuk mengawal pengekodan aksara.

Kurungan dalam ungkapan biasa

Kurungan menentukan pilihan untuk simbol, yang mesti menjadi atau mungkin tidak berada di tempat yang tertentu, dan bulat - varian urutan. Tetapi ini hanya peraturan umum. Dari itu tidak ada pengecualian, tetapi terdapat pelbagai jenis aplikasi.

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

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

cRegRes var = '';

var sTest = 'picture.jpg';

jika (eRegExp.test (sTest)) {

cRegRes + = '- Ya';

} Lain {

cRegRes + = '- Tidak';

}

keputusan:

/[az]*.(png|jpg|gif)/ ungkapan untuk line "picture.jpg" - Ya

ungkapan /^[ad][az]*.(png|jpg|gif)/ untuk line "picture.jpg" - Tiada

/^[ad][az]*.(png|jpg|gif)/ ungkapan untuk line "apicture.jpg" - Ya

ungkapan /^[ad][az]*.(png|jpg|gif)/ untuk line "apicture.jg" - Tiada

Perlu diingatkan bahawa semua, kemudian asterisk boleh hadir sifar kali. Ini bermakna bahawa "musim biasa" mungkin bekerja dalam cara yang tidak dijangka sekurang-kurangnya.

Semak RegExp - email ujian

Pada ungkapan JavaScript biasa diperolehi dua kaedah, ujian dan exec, dan boleh digunakan dalam talian objek (String) dalam kaedah mereka (fungsi): carian, perpecahan, menggantikan dan perlawanan.

kaedah ujian telah menunjukkan, ia membolehkan anda untuk memeriksa ketepatan ungkapan biasa. Cara Keputusan: betul / salah.

Pertimbangkan yang berikut JavaScript ungkapan biasa. Semak e-mel dari bilangan "sukar, tetapi pasti":

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

yang var rentetan sTest ='SlavaChip@sci.by 'memberikan benar, maka string ini e-mel-alamat yang betul. audit yang telah dijalankan oleh eRegExp.test (sTest).

penggunaan praktikal: rawatan e-Mail

Cara Exec menyediakan pelbagai keluaran, hubungi:

var aResult = eRegExp.exec (sTest);

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

Ia memberikan keputusan seperti berikut:

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

Kaedah-kaedah lain bekerja sama. Ia adalah disyorkan untuk memeriksa mereka keluar sendiri. Pembangunan dan penggunaan ungkapan biasa, ia adalah wajar untuk bekerja dalam amalan, menyalin kod itu tidak selalu dianjurkan di sini.

Popular "musim biasa"

JavaScript ungkapan biasa diberikan kepada e-mel bukan sahaja terdapat banyak pilihan yang lebih mudah. Sebagai contoh, /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Walau bagaimanapun, penjelmaan ini mengambil kira bukan semua penjelmaan daripada rekod alamat e-mel.

Sudah tentu, anda perlu melihat pengalaman rakan-rakan, untuk menganalisis bagaimana cadangan mereka sebelum mereka bentuk mereka sendiri di JavaScript ungkapan biasa. Tetapi terdapat beberapa kesukaran. Kita tidak harus lupa bahawa JavaScript ungkapan biasa (contoh apabila menyalin) boleh pendua watak-watak penting: '\', '/' atau sebut harga. Ini akan membawa kepada kesilapan, yang anda boleh mencari panjang.

Ia adalah penting untuk mengambil kira biasa yang "dimensi manusia." Selepas formal JavaScript ungkapan biasa untuk telefon, yang mungkin pengunjung (orang), ia diberikan dengan cara yang berbeza: 123-45-67, (29) 1234567, 80291234567 atau 375.291.234.567. Dan itu semua nombor yang sama. Mengeja pelbagai corak tidak selalu diterima, dan penetapan tegar peraturan untuk menulis nombor boleh mewujudkan ketidakselesaan yang tidak perlu atau sekatan. Pilihan / ^ \ d [\ d \ (\) \ -] {4,14} \ d $ / i adalah sesuai untuk kebanyakan kes, anda menyemak nombor telefon anda.

Jika anda ingin membuat ungkapan biasa JavaScript, hanya cek digit, walaupun apa-apa kes yang mudah memerlukan penjelasan. Ia harus dianggap sebagai integer atau pecahan, notasi saintifik, atau nombor biasa, positif atau negatif. Anda juga boleh mengambil kira kewujudan simbol mata wang, bilangan digit selepas titik perpuluhan dan pembahagian seluruh bahagian daripada nombor yang terdapat pada kongsi gelap.

Ungkapan / ^ \ d + $ / i menyemak hanya nombor dan ungkapan /^\d+\.\d+$/i membolehkan penggunaan mata untuk menunjukkan bahagian pecahan nombor.

Dalam JavaScript check-ungkapan biasa boleh D. digunakan untuk menunjukkan format data input keras, yang penting, terutamanya apabila memasuki profil, data pasport, dan alamat t undang-undang.

Semak tarikh - mudah ke kompleks

Pertimbangkan lain JavaScript ungkapan biasa. Contoh setakat ini, bagi jumlah nombor telefon mewakili pilihan antara ketegaran dan fleksibiliti. Tarikh acara - salah satu daripada data penting, yang sering perlu diberikan. Tetapi menetapkan input dalam format tertentu: "dd-mm-yyyy 'atau' d.m.gg 'sering membawa kepada rasa tidak puas hati pelanggan. Peralihan dari medan input daripada hari-ke-bulan, penuh klasik HTML-bentuk, tidak boleh berlaku apabila anda masukkan hanya satu digit, dan input kedua boleh menjadi sukar. Sebagai contoh, dalam bidang hari ia diperkenalkan 3 dan nombor seterusnya 2 tidak menggantikan yang pertama, dan adalah disebabkan oleh beliau 32, yang, sememangnya, akan menyebabkan kesulitan.

Kecekapan dan kemudahan ungkapan biasa pada dasarnya bergantung kepada pembinaan am dialog dengan pengunjung. Dalam satu kes, untuk menunjukkan tarikh ia adalah dinasihatkan untuk menggunakan satu medan input borang, dalam kes yang lain, ia adalah perlu untuk mengadakan peruntukan bagi pelbagai bidang untuk hari, bulan dan tahun. Tetapi maka apa-apa tambahan "kos code" untuk menyemak tahun lompat, bilangan bulan, bilangan hari dalam mereka.

Cari dan menggantikan, memori ungkapan biasa

JavaScript menggantikan (ungkapan biasa) menggunakan kaedah objek tali, dan membolehkan kita untuk mencari nilai dan perubahan serta-merta. Ini berguna untuk membetulkan kesilapan menaip, mengedit kandungan medan borang dan untuk menukarkan data dari satu format pembentangan yang lain.

var cRegExp = / ([a-z] +) \ s ([a-z] +) \ s ([a-z] +) / i; // apabila mencari tiga 'pembolehubah'

var sTest = 'artikel ini adalah baik!';
var cRegRes = sTest.replace (cRegExp, "$ 2, $ 3, $ 1");

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

dTestLine.innerHTML = 'ungkapan' + cRegExp + 'untuk rentetan "' + sTest + '" berubah:' + cRegRes;

keputusan tersenarai:

ungkapan / ([az] +) \ s ([az] +) \ s ([az] +) / i untuk baris "artikel ini adalah baik!" keluar: artikel yang baik, ini!

Apabila melakukan setiap pasangan kurungan menyimpan hasilnya dalam 'ubah' $ n, di mana n - bilangan pasang pendakap ($ 1, $ 2, ...). Tidak seperti konvensional, di sini penomboran pembolehubah adalah 1, tidak 0.

cadangan umum

Ungkapan biasa memudahkan kod, tetapi masa untuk membangunkan ia sering membuat perbezaan. Anda boleh mulakan dengan reka bentuk mudah dan kemudian dibuat untuk menggabungkan ke dalam lebih ungkapan kompleks. Anda boleh menggunakan pelbagai perkhidmatan dalam talian untuk menguji ungkapan biasa atau alat tempatan istimewa.

Pilihan terbaik akan mewujudkan perpustakaan mereka sendiri daripada ungkapan biasa dan alat-alat mereka sendiri untuk menguji perkembangan baru. Ini adalah cara terbaik untuk menyatukan pengalaman dan belajar bagaimana untuk cepat membina reka bentuk dipercayai dan selesa.

Menggunakan pengulangan aksara dan rentetan, iaitu, '*' aksara khas, '+' dan penyokong gigi, menunjukkan bilangan ulangan hendaklah berpandukan prinsip-prinsip kesederhanaan dan kesesuaian. Ia adalah penting untuk menyedari bahawa ungkapan biasa untuk permulaan kerja, dan untuk mendapatkan hasil yang adalah sepenuhnya dalam kuasa enjin yang digunakan oleh pelayar. Tidak semua bahasa adalah bersamaan dengan JavaScript. Setiap pelayar boleh membawa mereka pilihan peribadi dalam tafsiran ungkapan biasa.

Keserasian bukan hanya halaman dan lembaran gaya, untuk ungkapan biasa, ia juga mempunyai kaitan. halaman menggunakan JavaScript, boleh dianggap sebagai yang berfungsi dengan baik hanya apabila ia telah berjaya bekerja pada pelbagai pelayar.

JavaScript, String dan RegExp

Dengan kerja yang betul pada peringkat pelanggan, iaitu, dalam pelayar pelawat dalam JavaScript, ia memerlukan kemahiran yang tinggi pemaju. lama-lama anda mempunyai peluang untuk debug JavaScript-kod pelayar dana sendiri atau dengan bantuan sambungan pihak ketiga, editor kod, program bebas.

Walau bagaimanapun, dalam banyak kes, debugger boleh mengurus dan memberikan pemaju dengan sokongan yang baik, pengesanan ralat yang cepat, dan pengesanan kesesakan. Masa ketika komputer difokuskan pada pengkomputeran, pada masa lalu yang jauh. Kini perhatian istimewa diberikan kepada maklumat, dan objek garis mula memainkan peranan penting. Nombor telah menjadi rentetan, dan mereka memperlihatkan intipati sejati mereka hanya pada masa yang tepat dan di tempat yang betul.

Ungkapan-ungkapan yang kerap menguatkan kemungkinan garis, tetapi memerlukan penghormatan yang sewajarnya. Debug RegExp dalam proses kerja, walaupun mungkin untuk model, idea tidak terlalu menarik.

Memahami struktur dan logik objek RegExp, maksud objek String, sintaks dan semantik JavaScript adalah jaminan yang pasti untuk kod yang selamat dan boleh dipercayai, operasi yang stabil bagi setiap halaman dan tapak secara keseluruhannya.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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