Di masa lalu, JS jarang menggunakan ekspresi reguler JS.
Baru -baru ini, saya telah menemukan beberapa ekspresi reguler yang perlu digunakan, dan belajar
Ada dua metode definisi objek ekspresi reguler ::
1. Definisi pertama:
Regexp baru (pola, atribut);
Di antara mereka, pola adalah konten ekspresi dari ekspresi, seolah -olah di atas menunjukkan ABC
Atribut: G, pencocokan global, saya tidak membedakan antara case kecil dan kecil, m mengeksekusi pencocokan multi -line, paling banyak penggunaan g dan i
2. Definisi kedua:/pola/atribut.
Seperti: var reg = /abc /g;
Beberapa aturan yang diungkapkan dalam ekspresi reguler tidak lagi dijelaskan di sini, hanya perbedaan antara Exec dan Match:
1. EXEC adalah metode ekspresi reguler, bukan metode string.
Sebagai definisi di atas
var reg = regexp baru ("ABC");
var str = "3abc4, 5abc6";
Reg.exec (str);
2. Match adalah metode untuk string untuk melakukan aturan ekspresi reguler.
var reg = regexp baru ("ABC");
var str = "3abc4, 5abc6";
str.match (mis.);
3. EXEC DAN MATCH RETURN ADALAH ARRAY;
Jika ekspresi reguler yang dieksekusi oleh EXEC tidak memiliki sub -ekspresi (konten dalam kurung kecil, seperti/s*)/(/s*)/(/s*), jika ada kecocokan, kembalikan konten string yang cocok pertama konten, hanya ada satu elemen saat ini, jika tidak dicocokkan dan dikembalikan ke null;
var reg = regexp baru ("ABC");
var str = "3abc4, 5abc6";
peringatan (Reg.exec (str));
alert (str.match (reg));
Menjalankan kode yang sama, Anda akan menemukan bahwa konten keduanya sama: ABC,
4. Jika objek ekspresi reguler didefinisikan sebagai pencocokan global, seperti:
var reg = regexp baru ("abc", "g");
var str = "3abc4, 5abc6";
peringatan (Reg.exec (str));
alert (str.match (reg));
Untuk ABC dan ABC, ABC;
5. Ketika itu berarti bahwa sub -ekspresi terkandung dalam:
var reg = regexp baru ("a (bc)");
var str = "3abc4, 5abc6";
peringatan (Reg.exec (str));
alert (str.match (reg));
Anda akan menemukan bahwa hasil dari dua eksekusi adalah: ABC, BC;
6. Saat objek ekspresi reguler didefinisikan sebagai pertandingan global
var reg = regexp baru ("a (bc)", "g");
var str = "3abc4, 5abc6";
peringatan (Reg.exec (str));
alert (str.match (reg));
Hasil dari keduanya yang dikembalikan adalah ABC, BC dan ABC, ABC,
Ringkasan sebagai:
1. Ketika ekspresi reguler tidak memiliki sub -ekspresi, dan didefinisikan sebagai pencocokan non -global, hasil exec dan match adalah sama, dan konten string pencocokan pertama dikembalikan;
2. Ketika ekspresi reguler tidak memiliki sub -ekspresi, dan didefinisikan sebagai pencocokan global, eksekutif dan pencocokan eksekusi, dan ada beberapa konten pencocokan, maka kecocokan mengembalikan beberapa array elemen;
3. Ketika ekspresi reguler diwakili, dan didefinisikan sebagai pencocokan skala yang tidak penuh, hasil eksekusi eksekutif dan kecocokan sama dengan di atas;
4. Ketika ekspresi reguler diwakili, dan didefinisikan sebagai pertandingan global, hasil Exec dan Match berbeda. , seperti di atas 6, 6, 6, 6, 6, 6, 6.
Dengan kata lain, apakah EXEC didefinisikan oleh situasi keseluruhan tidak terkait, dan kecocokan dikaitkan dengan situasi keseluruhan.