Saudara, saya baru -baru ini belajar JavaScript dan melihat bahwa poin pengetahuan agak berantakan ketika saya belajar ekspresi reguler, jadi saya menulis sebuah blog untuk meringkasnya.
definisi
Ada dua cara untuk mendefinisikan REG exp di JavaScript:
1) Gunakan exp baru: var exp1 = exp baru ("ABC");
2) Letakkan pola langsung antara dua //: var exp2 = /abc /; //Catatan. . Tidak ada kutipan ganda, jika Anda menambahkannya, itu menjadi string
Karakter Khusus
Secara visual, karakter khusus sama dengan yang dari Perl. . Gunakan saja secara langsung
/D Karakter digit
/w karakter alfanumerik ("karakter kata")
Karakter Ruang Putih (Ruang, Tab, Newline, dan Syingle)
/D karakter yang bukan digit
/W karakter non-alfanumerik
Karakter non-whitespace
. Periode cocok dengan semua karakter kecuali Newline
Ada cara yang sangat sederhana untuk diingat:
D = digit jadi ini angka
w = word jadi surat itu
s = ruang jadi itu adalah ruang
Semua kapitalisasi terbalik. .
kurung []
Masukkan pola dalam tanda kurung berarti bahwa selama karakter apa pun cocok, itu benar. (Itu sama dengan Java atau Perl)
Misalnya
Salinan kode adalah sebagai berikut:
console.log (/[01]/. Test ("023424")); // BENAR
Console.log (/[01]/. Test ("13424")); // BENAR
console.log (/[01]/. Test ("23424")); // PALSU
tanda kurung ()
Itu berarti bahwa segala sesuatu dalam kurung pasti benar
Misalnya
Salinan kode adalah sebagai berikut:
Console.log (/[01]/. Test ("013424")); // BENAR
Console.log (/[01]/. Test ("13424")); // PALSU
console.log (/[01]/. Test ("230424")); // PALSU
console.log (/[01]/. Test ("230142401")); // BENAR
Kuantifikasi
Itu sama dengan Java. . Tabel ini sangat bagus. . Saya selalu suka menggunakannya
| Tamak | Enggan | Posesif | Arti |
|---|---|---|---|
| X? | X?? | X?+ | X, sekali atau tidak sama sekali |
| X* | X*? | X*+ | X, nol atau lebih kali |
| X+ | X+? | X ++ | X, satu kali atau lebih |
| X {n} | X {n}? | X {n}+ | X, tepatnya n kali |
| X {n,} | X {n,}? | X {n,}+ | X, setidaknya n kali |
| X {n, m} | X {n, m}? | X {n, m}+ | X, setidaknya n tetapi tidak lebih dari m kali |
Fungsi Objek Ekspresi
1) Tes sangat sederhana. Cukup letakkan string untuk diuji dalam tes (...), dan fungsi ini akan mengembalikan true/false, yang mewakili kecocokan/unmatch
2) EXEC, fungsi ini mengembalikan nol jika tidak ada string yang cocok ditemukan. Jika ditemukan, array akan dikembalikan. Ini berisi string pertandingan secara berurutan.
3) String.replace (ekspresi1, string1) Fungsi ini menggantikan bagian pencocokan dalam ekspresi dengan String1. Di String1, Anda dapat menggunakan grup tanda kurung di ekspresi sebelumnya
, untuk mengganti sebagian dari itu. Misalnya, "co-ol" .replace (/[/w] +/- [/w]+/, "$ 2- $ 1"); // "ol-co" dapat digunakan sampai $ 9
4) String.replace (ekspresi, fungsi) Ini adalah versi yang ditingkatkan dan sangat kuat. Anda dapat menentukan output apa pun yang Anda inginkan melalui fungsi. Penggunaan spesifik tidak tercantum di sini, silakan merujuk ke
Klik untuk membuka tautan
Secara dinamis menghasilkan ekspresi REG
Metode ini dapat diterapkan saat Anda ingin menggunakan sesuatu di reg exp hanya tahu tentang runtime
Untuk menghasilkan REG EXP, Anda hanya perlu menggunakan string untuk membuat tampilan REG EXP, dan kemudian menggunakan konstruktor EXP. (Disebutkan di awal artikel)
Misalnya:
Salinan kode adalah sebagai berikut:
var name = "Dear"
"Oh, sayangku". Replace (exp baru (nama), "Tuhan"); // oh, tuhanku
Namun, jika ada karakter khusus dalam nama, itu dapat digunakan dalam ekspresi reguler, dan metode di atas akan sering membuat kesalahan.
Jadi, dalam hal ini, kita dapat mengawali setiap karakter dari string input dengan backslash seperti:
Salinan kode adalah sebagai berikut:
var name = df [] vxv;
var expname = name.replace ("/[^/w/s]/g", "// $ &");
"Nama saya df [] vxv" .replace (exp baru (nama), "bob"); // Nama saya Bob