Praktik Reguler Javascript (akan diperbarui terus menerus berdasarkan penulisan terbaru)
1. JavaScript Regular Object Penggantian Pembuatan dan Penggunaan: /Pola /Bendera Pertama pelajari kasus sederhana dan pahami apa yang dapat dilakukan ganti
Konstruktor ekspresi reguler: regexp baru ("pola" [, "bendera"]);
Fungsi Variabel Penggantian Ekspresi Reguler: StringObj.Replace (RegExp, Ganti Teks);
Deskripsi Parameter:
Pola - Teks Ekspresi Reguler
Bendera - jika ada, itu akan menjadi nilai berikut:
G: Pertandingan global
I: Abaikan kasus
GI: Kombinasi di atas
// Contoh berikut digunakan untuk mendapatkan dua parameter URL dan mengembalikan urlvar asli sebelum urlrewrite reg = regexp baru ("(http://www.qidian.com/bookreader/)(//d+) ,(//d+).aspx", "gmi"); var var); url = "http://www.qidian.com/bookreader/1017141.20361055.aspx"; // Metode 1, metode paling sederhana dan paling umum digunakan var rep = url.replace (REG, "$ 1Showbook.aspx? BookID = $ 2 & babyid = $ 3"); rep2 = url.replace (reg, function (m, p1, p2, p3) {return p1+"showbook.aspx? bookId ="+p3+"& chapterid ="+p3}); waspada (rep2); // metode 3, gunakan fungsi callback dengan parameter non-fixed var var rep3 = url.replace (functients) (funche non-fixed {var var rep3 = url.replice (functients (functients (funche (funche non-fixed (funche) var rep3 = url.replaCe (functients (funche (funche (funche) var rep3 = url.repl. args [1]+"showbook.aspx? bookId ="+args [2]+"& babid ="+args [3];}); peringatan (rep3); // metode 4 // Metode 4 sangat mirip dengan metode 3. Selain mengembalikan string yang diganti, Anda juga bisa mendapatkan parameter var bookid; var chapterid; function captext () {var args = argumen; bookId = args [2]; babID = args [3]; return args [1]+"showbook.aspx? bookId ="+args [2]+"& babid ="+args [3];} var rep4 = url.replace (reg, captext); waspada (rep4); waspada (bookId); waspada (babID); // gunakan metode uji untuk mendapatkan pengelompokan var var reg3 = Regexp ("(http://www.qidian.com/bookreader/)(//d+) ,(//d+).aspx", "GMI"); Reg3.test ("http://www.qidian.com/bookreader/1017141,203665.aspx" get/getsererer/1017141,203655.aspx "(gets (rEBOKREADER/1017141,20365.aspx" Peringatan (Regexp. $ 2); Peringatan (Regexp. $ 3);2. Pencarian pencocokan EXEC Test EXEC yang paling umum digunakan mengganti metode split 6
1) Periksa apakah ada string yang ditentukan
var data = “123123 ″;
var recat = /123 /gi;
peringatan (recat.test (data)); //BENAR
// Periksa apakah karakter yang ada g terus turun, saya peka
2) EXEC mengembalikan nilai kueri
var data = "123123.213.12312,312,3, Cat, Cat, DSFSDFS,";
var recat = /cat /i;
peringatan (recat.exec (data)); //Kucing
3) Pertandingan mendapatkan array kueri
var data = "123123.213.12312,312,3, Cat, Cat, DSFSDFS,";
var recat = /kucing /gi;
var arrmactches = data.match (recat)
untuk (var i = 0; i <arrmactches.length; i ++)
{
waspada (arrmactches [i]); // kucing kucing
}
4) Pencarian Posisi Pencarian Kembali Mirip dengan IndexOf
var data = "123123.213.12312,312,3, Cat, Cat, DSFSDFS,";
var recat = /kucing /gi;
peringatan (data.search (recat)); // 23
5) Ganti karakter pengganti menggunakan penggantian reguler
var data = "123123.213.12312,312,3, Cat, Cat, DSFSDFS,";
var recat = /kucing /gi;
peringatan (data.replace (recat, "libinqq"));
6) Pisahkan menggunakan array segmentasi biasa
var data = "123123.213.12312,312,3, Cat, Cat, DSFSDFS,";
var recat = //,/;
var arrdata = data.split (recat);
untuk (var i = 0; i <arrdata.length; i ++)
{
peringatan (arrdata [i]);
}
3. Koleksi ekspresi yang umum digunakan:
"^// d + $" // Integer non-negatif (bilangan bulat positif + 0)
"^[0-9]*[1-9] [0-9]*$" // Integer positif
"^((-// d+) | (0+)) $" // bukan bilangan bulat positif (bilangan bulat negatif+0)
"^-[0-9]*[1-9] [0-9]*$" // Integer negatif
"^-? // D+$" // Integer
"^// D+(//.// D+)? $" // Nomor Titik Mengambang Non-negatif (Nomor Titik Mengambang Positif+0)
"^(([0-9]+//. [0-9]*[1-9] [0-9]*) | ([0-9]*[1-9] [0-9]*//. [0-9]+) | ([0-9]*[1-9] [0-9]*)) $"
// Angka Titik Mengambang Positif
"^((-// d+(///// d+)?) | (0+(//. 0+)?)) $" // Nomor Titik Mengambang Non-Posititif (Nomor Titik Mengambang Negatif+0)
"^(-(([0-9]+//.
// nomor titik mengambang negatif
"^(-? // D+) (///// D+)? $" // Nomor Titik Mengambang
"^[A-za-z]+$" // Sebuah string yang terdiri dari 26 huruf bahasa Inggris
"^[Az]+$" // Sebuah string yang terdiri dari 26 huruf kapitalisasi bahasa Inggris
"^[az]+$" // Sebuah string yang terdiri dari huruf kecil dari 26 huruf bahasa Inggris
"^[A-za-z0-9]+$" // Sebuah string yang terdiri dari angka dan 26 huruf bahasa Inggris
"^// W+$" // Sebuah string yang terdiri dari angka, 26 huruf bahasa Inggris atau garis bawah
"^[// w-]+(//. [// w-]+)*@[// w-]+(//. [// w-]+)+$" // alamat email
"^[a-za-z]+: // (// w+(-// w+)*) (//. (// w+(-// w+)*))*(//? // s*)? $" // url
"^[A-za-z0-9 _]*$".
Dasar -dasar ekspresi reguler
^ Cocokkan input atau awal garis, /^ a / cocok "a a", tetapi tidak "a"
$ cocok dengan akhir dari input atau baris, / a $ / cocok "a a", tetapi tidak "a"
* Cocokkan Metacharacter 0 atau lebih kali sebelumnya, / BA* / akan cocok dengan B, BA, BAA, BAA
+ Cocokkan Metacharacter 1 atau lebih kali sebelumnya, / BA+ / akan cocok dengan BA, BAA, BAAA
? Cocokkan Metacharacter 0 atau 1 kali sebelumnya, / BA? / Akan cocok dengan B, BA
(x) Cocokkan X menghemat x dalam variabel bernama $ 1 ... $ 9
x | y cocok x atau y
{n} pertandingan persis n kali
{n,} cocok lebih dari n kali
{n, m} cocok dengan nm kali
[xyz] set karakter, mencocokkan karakter apa pun (atau metacharacter) dalam set ini
[^xyz] tidak cocok dengan karakter apa pun dalam koleksi ini
[/b] Cocokkan karakter backspace
/b Cocokkan batas kata
/B cocok dengan non-boundary kata
/cx di sini, x adalah karakter kontrol, // cm/cocok dengan ctrl-m
/D cocok dengan karakter, // d/=/[0-9]/
/D cocok dengan karakter numerik non-kata, // d/=/[^0-9]/
/n cocok dengan karakter garis baru
/r cocok dengan karakter pengembalian kereta
/S cocok dengan karakter whitespace, termasuk/n,/r,/f,/t,/v, dll.
/S cocok dengan karakter non-whitespace sama dengan/[^/n/f/r/t/v]/
/t cocok dengan karakter tab
/v cocok dengan karakter tab pengalihan
/W cocok dengan karakter yang dapat membentuk kata (alfanumerik, yang merupakan terjemahan saya, termasuk angka), termasuk garis bawah, seperti [/w] cocok dengan 5 dalam "$ 5,98", sama dengan [a-za-z0-9]
/W cocok dengan karakter yang tidak dapat membentuk kata, seperti [/w] cocok dengan $ dalam "$ 5,98", yang sama dengan [^a-za-z0-9].