Ekspresi reguler menggambarkan pola pencocokan string, yang dapat digunakan untuk memeriksa apakah string berisi substring tertentu, mengganti substring yang cocok, atau mengeluarkan substring yang memenuhi kondisi tertentu dari string tertentu, dll.
Karena ekspresi reguler tidak sering digunakan, mereka mudah untuk sering melupakannya. Editor berikut mencantumkan fungsi dan fungsi yang umum digunakan di sini dengan cara yang ringkas untuk tampilan di masa depan:
Ada 2 fungsi objek RegExp yang umum digunakan
1. Fungsi uji
Penggunaan: RegExpObject.test (String)
Return: true jika string string berisi teks pencocokan regexpObject, sebaliknya false.
Deskripsi: Tidak ada yang istimewa tentang metode ini, dan tidak ada perlakuan khusus untuk pengubah g
Contoh:
var url = 'http://www.baidu.com?a=1&b=2&c=3';var reg = /a=1/;console.log(Reg.test(url)); // Hasil output benar
2. Fungsi EXEC
Penggunaan: RegExpObject.exec (String)
Return: Mengembalikan array di mana hasil yang cocok disimpan. Jika tidak ada kecocokan yang ditemukan, nilai pengembalian adalah nol.
menggambarkan:
Metode exec () sangat kuat. Ini adalah metode umum dan lebih kompleks untuk digunakan daripada metode tes () dan metode yang mendukung ekspresi reguler.
Jika exec () menemukan teks yang cocok, array hasil dikembalikan. Kalau tidak, kembalikan nol. Elemen ke -0 dari array ini adalah teks yang cocok dengan ekspresi reguler, elemen pertama adalah teks yang cocok dengan subekspresi 1 RegExpObject, jika ada, elemen ke -2 adalah teks yang cocok dengan subkekspresi RegExpObject ke -2, dan sebagainya. Selain elemen array dan atribut panjang, metode exec () mengembalikan dua properti. Properti indeks menyatakan posisi karakter pertama yang cocok dengan teks. Properti input menyimpan string string yang diambil. Kita dapat melihat bahwa ketika memanggil metode exec () dari objek RegExp non-global, array yang dikembalikan sama dengan array yang dikembalikan dengan memanggil metode string.match ().
Namun, ketika RegExpObject adalah ekspresi reguler global, perilaku exec () sedikit lebih rumit. Ini mulai mencari string string pada karakter yang ditentukan oleh properti LastIndex dari RegExpObject. Ketika exec () menemukan teks yang cocok dengan ekspresi, setelah cocok, ia menetapkan properti LastIndex dari RegExpObject ke posisi berikutnya dari karakter terakhir dari teks yang cocok. Dengan kata lain, Anda dapat mengulangi semua teks yang cocok dalam string dengan memanggil metode exec () berulang kali. Ketika exec () tidak dapat lagi menemukan teks yang cocok, ia mengembalikan nol dan mengatur ulang properti LastIndex ke 0.
Contoh:
Ekspresi reguler dengan pengubah g
var url = 'http://www.baidu.com?a=1&b=2&c=3';var reg = /($....?&= media+)=(ataan^?&=....)*/g;console.log(reg.exec(url))); // ["a = 1", "a", "1", index: 21, input: "http://www.baidu.com?a=1&b=2&c=3" Tetapiconsole.log(reg.exec(url)); // ["b = 2", "b", "2", index: 25, masukan: "http://www.baidu.com?a=1&b=2&c=3" Tetapiconsole.log(reg.exec(url)); // ["c = 3", "c", "3", index: 29, input: "http://www.baidu.com?a=1&b=2&c=3" Tetapiconsole.log(reg.exec(url)); //nullreg.LastIndex = 0; // Kode ini sangat penting, harap perhatikan memahami konsol.log (Reg.exec (URL)); // ["a = 1", "a", "1", index: 21, input: http://www.baidu.com?a=1&b=2&c=3]
Ekspresi reguler tanpa pengubah g
var url = 'http://www.baidu.com?a=1&b=2&c=3';var reg = /($....?&= media+)=(ataan^?&=....)*/g;console.log(reg.exec(url))); // ["a = 1", "a", "1", index: 21, input: "http://www.baidu.com?a=1&b=2&c=3" Tetapiconsole.log(reg.exec(url)); // ["a = 1", "a", "1", index: 21, input: "http://www.baidu.com?a=1&b=2&c=3" Tetapiconsole.log(reg.exec(url)); // ["a = 1", "a", "1", index: 21, input: "http://www.baidu.com?a=1&b=2&c=3" Tetapiconsole.log(reg.exec(url)); // ["a = 1", "a", "1", index: 21, input: "http://www.baidu.com?a=1&b=2&c=3" Tetapireg.LastIndex = 0; console.log (Reg.exec (url)); // ["a = 1", "a", "1", index: 21, input: "http://www.baidu.com?a=1&b=2&c=3" Tetapireg.LastIndex = 0; console.log (Reg.exec (url)); // ["a = 1", "a", "1", index: 21, input: http://www.baidu.com?a=1&b=2&c=3]
Apakah Anda pernah menemukan sesuatu yang berbeda? Baca deskripsi fungsi dengan cermat dan Anda akan mengerti ^_ ^
Ada 4 fungsi objek string yang mendukung keteraturan, kami hanya akan berbicara tentang 2 dari mereka.
1. Fungsi cocok
Penggunaan: StringObject.match (SearchValue | RegExp), di sini kita hanya berbicara tentang mode RegExp
Nilai Pengembalian: Array yang menyimpan hasil pencocokan. Isi array ini tergantung pada apakah RegExp memiliki bendera global g.
menggambarkan:
Metode pencocokan () mengambil string stringObject untuk menemukan satu atau lebih regexp pencocokan teks. Perilaku metode ini sebagian besar tergantung pada apakah RegExp memiliki bendera g.
Jika RegExp tidak memiliki Flag G, metode Match () hanya dapat melakukan kecocokan sekali di StringObject. Jika tidak ada teks yang cocok ditemukan, pasar () mengembalikan nol. Kalau tidak, ia mengembalikan array yang menyimpan informasi tentang teks yang cocok yang ditemukannya. Elemen ke -0 dari array menyimpan teks yang cocok, sedangkan teks penyimpanan rest yang cocok dengan sub -ekspresi ekspresi reguler. Selain elemen array reguler ini, array yang dikembalikan juga berisi dua properti objek. Atribut indeks menyatakan posisi karakter awal yang cocok dengan teks di StringObject, dan atribut input menyatakan referensi ke StringObject.
Jika RegExp memiliki Flag G, metode Match () melakukan pencarian global, menemukan semua substring yang cocok di StringObject. Jika tidak ada substring yang cocok ditemukan, null dikembalikan. Jika satu atau lebih substring pencocokan ditemukan, array dikembalikan. Namun, isi array yang dikembalikan oleh pertandingan global sangat berbeda dari yang sebelumnya. Elemen Array -nya menyimpan semua substring yang cocok di StringObject, dan tidak ada atribut indeks atau atribut input.
Contoh:
Tanpa pengubah g
var url = 'http://www.baidu.com?a=1&b=2&c=3'Ivar reg =/([^? & =]+) = ([^? & =])*/; var result = url.match (reg); konsol.log (hasil); // ["a = 1", "a", "1", index: 21, input: "http://www.baidu.com?a=1&b=2&c=3" Tetapiconsole.log(result.index); //21console.log(result.input); //http://www.baidu.com?a=1&b=2&c=3" Tetapiconsole.log(result.input); //http://www.baidu.com?a=1&b=2&c=3
Dengan pengubah g
var url = 'http://www.baidu.com?a=1&b=2&c=3'Ivar reg =/([^? & =]+) = ([^? & =])*/g; var result = url.match (reg); konsol.log (hasil); // ["a = 1", "b = 2", "c = 3"] console.log (result.index); //undefinedConsole.log(result.input); //belum diartikan
Apakah Anda pernah menemukan sesuatu yang berbeda? Baca deskripsi fungsi dengan cermat dan Anda akan mengerti ^_ ^
2. Ganti fungsi
Penggunaan: StringObject.replace (regexp/substr, penggantian)
Nilai Pengembalian: String baru yang diperoleh setelah mengganti pertandingan pertama atau semua pertandingan RegExp dengan penggantian.
Deskripsi: Metode ganti () dari String StringObject melakukan operasi pencarian dan ganti. Ini akan mencari substring pencocokan regexp di StringObject dan mengganti substring tersebut dengan penggantian. Jika RegExp memiliki flag G global, metode REPLACE () menggantikan semua substring yang cocok. Kalau tidak, itu hanya menggantikan substring pencocokan pertama.
Penggantian dapat berupa string atau fungsi. Jika itu adalah string, maka setiap kecocokan akan diganti dengan string. Tetapi karakter $ dalam penggantian memiliki arti tertentu. Seperti yang ditunjukkan pada tabel berikut, ini menyatakan bahwa string yang diperoleh dari pencocokan pola akan digunakan untuk penggantian.
| karakter | Ganti teks |
|---|---|
| $ 1, $ 2, ... $ 99 | Teks yang cocok dengan sub -ekspresi 1 hingga 99 di RegExp. |
| $ & | Substring yang cocok dengan regexp. |
| $ ` | Teks di sebelah kiri substring yang cocok. |
| $ ' | Teks di sebelah kanan substring yang cocok. |
| $$ | Simbol pengukuran langsung. (Itu berarti bahwa ketika Anda ingin menggantinya dengan simbol $, tulis dua $) |
Contoh:
Tanpa pengubah g
var url = 'http://www.baidu.com?a=1&b=2&c=3'Ivar reg =/([^? & =]+) = ([^? & =])*/; var url1 = url.replace (reg, function (a, b, c, d, e) {console.log.log http://www.baidu.com?a=1&b=2&c=3return 'ok';}) console.log (url1); //http://www.baidu.com?ok&b=2&c=3Dengan pengubah g
var url = 'http://www.baidu.com?a=1&b=2&c=3' ;var reg =/([^? & =]+) = ([^? & =])*/g; var url1 = URL.replace (reg, function (a, b, c, d, e) {console.log. adalah: a = 1, a, 1, 21, http://www.baidu.com?a=1&b=2&c=3 dan b = 2, b, 2, 25, http://www.baidu.com?a=1&b=2&c=3 dan | http://www.baidu.com?a=1&b=2&c=3return 'ok';}) console.log (url1); //http://www.baidu.com?ok&ok&okSaat parameter kedua adalah string
var url = 'http://www.baidu.com?a=1&b=2&c=3'Ivar reg =/([^? & =]+) = ([^? & =])*/; // tanpa pengubah gvar url1 = url.replace (reg, "$ &") console.log (url1); //http://www.baidu.com?a=1&b=2&c=3var url1 = url.replace (reg, "$ 1") console.log (url1); //http://www.baidu.com?a&b=2&c=3var url1 = url.replace (reg, "$ 2") console.log (url1); //http://www.baidu.com?1&b=2&c=3var url1 = url.replace (reg, "$ '") console.log (url1); //http://www.baidu.com?&b=2&c=3&b=2&c=3var reg =/([^? & =]+) = ([^? & =])*/g; // dengan pengubah gvar url1 = url.replace (reg, "$ &") console.log (url1); //http://www.baidu.com?a=1&b=2&c=3var url1 = url.replace (reg, "$ 1") console.log (url1); //http://www.baidu.com?a&b&cvar url1 = url.replace (reg, "$ 2") console.log (url1); //http://www.baidu.com?1&2&3var url1 = url.replace (reg, "$ '") console.log (url1); //http://www.baidu.com?&b=2&c=3&c=3&
Di atas adalah analisis komprehensif kecocokan, penggantian, eksekutif dan fungsi -fungsi lain dalam string JS dan ekspresi reguler yang diperkenalkan oleh editor. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!