1. Metode untuk mendefinisikan ekspresi reguler
Ada dua cara untuk mendefinisikan ekspresi reguler: definisi konstruktor dan definisi kuantitas langsung ekspresi reguler. Misalnya:
Salin kode sebagai berikut: var reg1 = regexp baru ('/d {5, 11}');
var reg2 = // d {5, 12}/;
Ekspresi reguler secara langsung mengukur karakter
/O: Karakter NUL (/U0000)
/t: Tab karakter (/u0009)
/n: Karakter Newline (/U000A)
/V: Karakter Tab Vertikal (/U000B)
/F: Page Change (/U000C)
/r: karakter carriage return (/u000d)
/xnn: Karakter Latin yang ditentukan oleh angka heksadesimal nn, misalnya, /x0a setara dengan /n
/uxxxx: Karakter unicode yang ditentukan oleh angka heksadesimal xxxx, misalnya /U0009 setara dengan /t
/CX: Karakter Kontrol ^X, misalnya, /CJ setara dengan line break /n
Karakter jangkar ekspresi reguler
^: Cocokkan awal string, dalam pencarian multi-line, cocokkan awal baris
$: Cocokkan ujung string, dalam pencarian multi-line, cocokkan ujung baris
/B: Cocokkan batas kata.
/B: Cocokkan posisi batas non-kata
(? = P): Pernyataan ke depan nol-lebar diperlukan untuk mencocokkan P, tetapi tidak memasukkan karakter yang cocok dengan P
(?! P): Arah negatif nol-lebar menegaskan terlebih dahulu, mensyaratkan bahwa string berikutnya tidak cocok dengan p
Kelas karakter untuk ekspresi reguler
[...]: Karakter apa pun dalam tanda kurung persegi
[^...]: Karakter apa pun yang tidak ada dalam tanda kurung persegi
.: Karakter apa pun kecuali istirahat garis dan terminator garis unicode lainnya
/W: Kata apa pun yang terdiri dari karakter ASCII, setara dengan [a-za-z0-9]
/W: Kata apa pun yang tidak terdiri dari karakter ASCII setara dengan [^a-za-z0-9]
/s: setiap unicode whitespace
/S: Karakter whitespace non-unicode apa pun, perhatikan bahwa /w dan /s berbeda
/D: nomor ASCII apa pun, setara dengan [0-9]
/D: Karakter apa pun kecuali nomor ASCII, setara dengan [^0-9]
[/B]: Kuantitas Langsung Backspace (Kasus Khusus)
Ulangi sintaks karakter untuk ekspresi reguler
{n, m}: Cocokkan item sebelumnya setidaknya n kali, tetapi tidak lebih dari m kali
{n,}: Cocokkan item sebelumnya n kali atau lebih kali
{n}: Cocokkan item sebelumnya n kali
?: Cocokkan item sebelumnya 0 atau 1 waktu, yaitu item sebelumnya opsional, setara dengan {0, 1}
+: Cocokkan item 1 atau lebih kali sebelumnya, setara dengan {1,}
*: Cocokkan item sebelumnya 0 atau lebih kali, setara dengan {0,}
Karakter seleksi, pengelompokan dan referensi dari ekspresi reguler
|: Pilih, mencocokkan subekspresi di sebelah kiri atau subekspresi di sebelah kanan
(...): Kombinasi, gabungkan beberapa item menjadi satu unit, yang dapat dimodifikasi oleh simbol seperti "*", "+", "?" menggunakan
(?: ...): Hanya menggabungkan item menjadi satu unit, tetapi tidak ingat karakter yang cocok dengan shuffle
/N cocok dengan karakter yang cocok dengan pertama kalinya kelompok NTH. Pengelompokan formulir tidak dikodekan
Pengubah ekspresi reguler
I: Lakukan pencocokan case-tidak sensitif
G: Lakukan pertandingan global, singkatnya, temukan semua pertandingan, bukannya berhenti setelah menemukan yang pertama
G: Pola pencocokan multi-line, ^ cocok dengan awal garis dan awal string, $ cocok dengan akhir garis dan akhir string
Metode string untuk pencocokan pola
Search (): Argumennya adalah ekspresi reguler, mengembalikan posisi awal dari substring pertama yang mencocokkannya, dan mengembalikan -1 jika tidak ada substring yang cocok. Jika parameter pencarian () bukan ekspresi reguler, pertama -tama akan dikonversi ke ekspresi reguler melalui konstruktor RegExp, pencarian () tidak mendukung pencarian global karena mengabaikan pengubah g. menyukai:
Salinan kode adalah sebagai berikut:
var s = "javascript" .search (/script/i);
ganti (): digunakan untuk melakukan pengambilan dan penggantian. Menerima dua parameter, yang pertama adalah ekspresi reguler, dan yang kedua adalah string yang akan diganti. Jika ekspresi reguler ditetapkan, substitusi global dilakukan, jika tidak, hanya substring pertama pencocokan yang diganti. Jika argumen pertama bukan ekspresi reguler, cari string secara langsung alih -alih mengubahnya menjadi ekspresi reguler. menyukai:
Salin kode sebagai berikut: var s = "javascript" .replace (/java/gi, "skrip"); // s = skrip skrip
Match (): Argumennya adalah ekspresi reguler. Jika Modifier G diatur, pencocokan global dilakukan. menyukai:
Salin kode sebagai berikut: var d = '55 ff 33 hh 77 tt'.match (// d+/g);
Split (): Metode ini digunakan untuk membagi string yang memanggilnya menjadi array yang terdiri dari substring. menyukai:
Salin kode sebagai berikut: var d = '123,31,453,645'.split (', ');
var d = '21, 123, 44, 64, 67, 3'.split (// s*,/s*/); , "67", "3"]
2. Objek Regexp
Setiap objek RegExp memiliki 5 properti. Sumber properti adalah string baca saja yang berisi teks dari ekspresi reguler. Properti Global adalah nilai boolean hanya baca untuk menunjukkan apakah ekspresi reguler memiliki pengubah g. Properti Ignorecase adalah nilai boolean hanya baca untuk menunjukkan apakah ekspresi reguler memiliki pengubah i. Multiline properti adalah nilai boolean hanya baca untuk menunjukkan apakah ekspresi reguler memiliki pengubah m. Properti LastIndex adalah integer yang dapat dibaca dan dapat ditulis.
Ada dua metode untuk objek RegExp. Parameter exec () adalah string, dan fungsinya mirip dengan kecocokan (). Jika tidak ada kecocokan, kembalikan nol. Terlepas dari apakah ekspresi reguler memiliki pengubah G, akan mengembalikan array yang sama. Ketika objek ekspresi reguler Calling exec () memiliki pengubah G, ia menetapkan properti LastIndex dari objek ekspresi reguler saat ini ke posisi karakter di sebelah substring yang cocok. Ketika ekspresi reguler yang sama memanggil exec () untuk kedua kalinya, ia akan mulai mengambil dari string yang ditunjukkan oleh properti LastIndex, dan jika exec () tidak menemukan hasil yang cocok, itu mengatur ulang LastIndex ke 0. menyukai:
Salinan kode adalah sebagai berikut: var p = /java /g;
var text = "JavaScript lebih menyenangkan daripada Java!"
var r;
while ((r = p.exec (teks))! = null) {
console.log (r, 'lastIndex:' + p.LastIndex);
}
Metode lain adalah test (). menyukai:
Salinan kode adalah sebagai berikut: var p = /java /i;
p.test ('JavaScript'); // Benar