1: Cara membuat ekspresi reguler
1. Format teks, metode penggunaan adalah sebagai berikut:
/pola/flags (yaitu:/mode/tanda)
2.RegExp Constructor, metode penggunaan adalah sebagai berikut:
Regexp baru ("pola" [, "flags"]) (yaitu: regexp baru ("pola" [, "mark"])))
parameter:
Pola: Teks yang mewakili ekspresi reguler
Bendera (Tag): Jika Anda menentukan item ini, flag dapat menjadi salah satu dari yang berikut:
G: Pertandingan Global (Pertandingan Lengkap)
I: Abaikan kasus (abaikan kasus)
GI: baik pertandingan global dan abaikan kasus (cocokkan semua nilai yang mungkin, dan abaikan kasus)
Catatan: Jangan gunakan kutipan untuk menandai parameter dalam format teks, dan jangan gunakan kutipan untuk menandai parameter fungsi generator ergou. Jadi ungkapan berikut
Itu setara:
/AB+C/I ============================== New Regexp ("AB+C", "I")
menggambarkan:
Saat membuat ekspresi reguler menggunakan fungsi konstruktor, perlu menggunakan string normal untuk menghindari aturan (termasuk karakter terkemuka/ dalam string).
Misalnya, dua pernyataan berikut setara:
re = regexp baru ("// w+");
re = // w+/
Catatan: Regexp memiliki Atribut Preset $
$ 1, ..., $ 9 atribut
Cocokkan substring terlampir dalam tanda kurung, jika ada.
Itu adalah milik Regexp
Statis, baca saja
Disediakan dalam JavaScript 1.2, NES 3.0 atau di atas
Deskripsi: Karena input adalah properti statis, bukan atribut objek ekspresi reguler individu. Anda dapat mengakses ini menggunakan regexp.input
milik.
Jumlah substring yang dapat ditambahkan dengan tanda kurung tidak terbatas, tetapi objek ekspresi reguler hanya dapat mempertahankan 9 terakhir. Jika Anda ingin mengakses semua
String yang cocok dalam tanda kurung, Anda dapat menggunakan array yang dikembalikan.
<! Doctype html public "-// w3c // dtd html 4.0 transisi // en"> <html> <adept> <title> dokumen baru </iteme> <script language = "javascript1.2"> var regexp = regexp baru ("(// w+) // s (// w+)" (/W+) "); str = "John Smith"; newsstr = str.replace (regexp, "$ 2"); newsstr2 = str.replace (regexp, "$ 1"); document.write ("String asli:"+str+"<br/>"); Document.write (Newstr+"<br/>"); document.write (newstr2+"<br/>"); Document.write ('$ 1 ='+regexp. $ 1+"$ 2 ="+regexp. $ 2); </script> </head> <body> </body> </html>2: Metode pencocokan () dapat mengambil nilai yang ditentukan dalam string, atau menemukan kecocokan untuk satu atau lebih ekspresi reguler. Ini mengembalikan nilai yang ditentukan, bukan posisi string.
tata bahasa
StringObject.match (SearchValue)
StringObject.match (RegExp) Deskripsi Parameter
Pencarian diperlukan. Menentukan nilai string yang akan diambil.
diperlukan regexp. Objek RegExp yang menentukan pola yang cocok. Jika parameter bukan objek RegExp, Anda harus terlebih dahulu meneruskannya ke konstruktor RegExp dan mengonversinya ke objek RegExp.
Nilai pengembalian
Menyimpan array hasil yang cocok. Isi array ini tergantung pada apakah RegExp memiliki bendera global g.
menjelaskan
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.
Contoh Penggunaan Pertandingan:
<! Doctype html public "-// w3c // dtd html 4.0 transisi // en"> <html> <head> <title> dokumen baru </iteme> <script language = "javascript1.2"> var str = "1 Plus 2 Equal 3"; var str2 = "11/23/55"; var hasil = str.match (regexp baru ("// d+", "GI")); untuk (var i = 0; i <results.length; i ++) {document.write (hasil [i]+"<br/>"); } var res = str2.match (regexp baru ("(// d // d?)/(// d // d?)/(// d // d)")); if (str2.length == res [0] .length) {document.write (res [1]+"<br/>"); document.write (res [2]+"<br/>"); document.write (res [3]+"<br/>"); } </script> </head> <body> </body> </html> function datecheck (value) {re = regexp baru ("(// d // d?)/(// d // d?)/(// d // d)"); var result = value.match (re); if (result) {if (hasil [0] .length! = value.length) {alert ("Format tanggal yang salah. Format yang benar harus mm/dd/yy.") Return false; } else {var t = hasil [3]; var y = parseInt ("20" + t); var m = parseInt (hasil [1], 10) - 1; var day = parseInt (hasil [2], 10); var d = tanggal baru (y, m, hari); if (d.getlyear ()! = y || d.getMonth ()! = m || d.getDate ()! = day) {alert ("Tanggal kesalahan!") Return false; } else {var sm = hasil [1] .length == 1? '0' + hasil [1]: hasil [1]; var sday = hasil [2] .length == 1? '0' + hasil [2]: hasil [2]; var sy = hasil [3]; lain mengembalikan sm + '/' + sday + '/' + sy; }}} else {alert ("Format tanggal yang salah. Format yang benar harus mm/dd/yy."); mengembalikan false; }}