การปฏิบัติปกติของ JavaScript (จะได้รับการปรับปรุงอย่างต่อเนื่องตามการเขียนล่าสุด)
1. JavaScript การสร้างการเปลี่ยนวัตถุและการใช้งาน: /รูปแบบ /แฟล็กก่อนเรียนรู้กรณีง่าย ๆ และเข้าใจว่าการแทนที่สามารถทำอะไรได้บ้าง
ตัวสร้างนิพจน์ทั่วไป: ใหม่ regexp ("รูปแบบ" [, "ธง"]);
ฟังก์ชั่นการแทนที่นิพจน์ทั่วไปฟังก์ชั่น: StringObj.replace (regexp, แทนที่ข้อความ);
คำอธิบายพารามิเตอร์:
รูปแบบ - ข้อความนิพจน์ทั่วไป
ธง - ถ้ามีอยู่มันจะเป็นค่าต่อไปนี้:
G: Global Match
ฉัน: ละเว้นกรณี
GI: ชุดค่าผสมข้างต้น
// ตัวอย่างต่อไปนี้ใช้เพื่อรับพารามิเตอร์สองตัวของ URL และส่งคืน urlvar จริงก่อน urlrewrite reg = new regexp ("(http://www.qidian.com/bookreader/)(//d+),(//d+).aspx", "gmi"); url = "http://www.qidian.com/bookreader/1017141,20361055.aspx"; // วิธีที่ 1, วิธีที่ง่ายที่สุดและใช้กันมากที่สุด var rep = url.replace (reg, "$ 1showbook.aspx? rep2 = url.replace (reg, function (m, p1, p2, p3) {return p1+"showbook.aspx? bookid ="+p3+"& strapimid ="+p3}); แจ้งเตือน (rep2); // วิธีที่ 3 ใช้ฟังก์ชันการโทรกลับ args [1]+"showbook.aspx? bookid ="+args [2]+"& appleid ="+args [3];}); การแจ้งเตือน (rep3); // วิธี 4 // วิธี 4 นั้นคล้ายกับวิธีที่ 3 var appterid; function captext () {var args = อาร์กิวเมนต์; bookid = args [2]; chapterid = args [3]; return args [1]+"showbook.aspx? bookid ="+args [2]+"& chapterid ="+args [3];} var rep4 = url.replace (reg, captext); แจ้งเตือน (rep4); แจ้งเตือน (bookid); regexp ("(http://www.qidian.com/bookreader/)(//d+),(//d+).aspx", "gmi"); reg3.test ("http://www.qidian.com/bookreader/1017141,20361055.aspx"); การแจ้งเตือน (regexp. $ 2); การแจ้งเตือน (regexp. $ 3);2. การค้นหาการจับคู่การจับคู่ที่ใช้กันมากที่สุดแทนที่การค้นหาแทนที่ 6 วิธีการแยก 6
1) ทดสอบตรวจสอบว่ามีสตริงที่ระบุอยู่หรือไม่
data var =“ 123123″;
var recat = /123 /gi;
การแจ้งเตือน (recat.test (data)); //จริง
// ตรวจสอบว่าตัวละครมีอยู่ต่อไปหรือไม่
2) EXEC ส่งคืนค่าการสืบค้น
ข้อมูล var = "123123,213,12312,312,3, แมว, แมว, DSFSDFS,";
var recat = /cat /i;
การแจ้งเตือน (recat.exec (data)); //แมว
3) การจับคู่ได้รับอาร์เรย์แบบสอบถาม
ข้อมูล var = "123123,213,12312,312,3, แมว, แมว, DSFSDFS,";
var recat = /cat /gi;
var arrmactches = data.match (recat)
สำหรับ (var i = 0; i <arrmactches.length; i ++)
-
การแจ้งเตือน (arrmactches [i]); // แมวแมว
-
4) การค้นหาตำแหน่งการค้นหาส่งคืนคล้ายกับดัชนีของ
ข้อมูล var = "123123,213,12312,312,3, แมว, แมว, DSFSDFS,";
var recat = /cat /gi;
การแจ้งเตือน (data.search (recat)); // 23
5) เปลี่ยนอักขระทดแทนโดยใช้การเปลี่ยนปกติ
ข้อมูล var = "123123,213,12312,312,3, แมว, แมว, DSFSDFS,";
var recat = /cat /gi;
การแจ้งเตือน (data.replace (recat, "libinqq"));
6) แยกโดยใช้อาร์เรย์แบ่งส่วนปกติ
ข้อมูล var = "123123,213,12312,312,3, แมว, แมว, DSFSDFS,";
var recat = //,/;
var arrdata = data.split (recat);
สำหรับ (var i = 0; i <arrdata.length; i ++)
-
การแจ้งเตือน (arrdata [i]);
-
3. การรวบรวมการแสดงออกที่ใช้กันทั่วไป:
"^// d + $" // จำนวนเต็มที่ไม่ใช่ลบ (จำนวนเต็มบวก + 0)
"^[0-9]*[1-9] [0-9]*$" // จำนวนเต็มบวก
"^((-// d+) | (0+)) $" // ไม่ใช่จำนวนเต็มบวก (จำนวนเต็มลบ+0)
"^-[0-9]*[1-9] [0-9]*$" // integer ลบ
"^-? // d+$" // จำนวนเต็ม
"^// d+(//.// d+)? $" // หมายเลขจุดลอยตัวที่ไม่ใช่เชิงลบ (หมายเลขจุดลอยตัวบวก+0)
"^(([[0-9]+//. [0-9]*[1-9] [0-9]*) | ([0-9]*[1-9] [0-9]*//. [0-9]+) | ([0-9]*[1-9] [0-9]*)) $"
// หมายเลขจุดลอยตัวบวก
"^((-// d+(//./// d+)?) | (0+(//. 0+)?)) $" // หมายเลขจุดลอยตัวที่ไม่ใช่เชิงบวก
"^(-((([0-9]+//. [0-9]*[1-9] [0-9]*) | ([0-9]*[1-9] [0-9]*//. [0-9]+) | ([0-9]*[1-9] [0-9]*))
// หมายเลขจุดลอยลบ
"^(-? // d+) (//./// d+)? $" // หมายเลขจุดลอยตัว
"^[a-za-z]+$" // สตริงที่ประกอบด้วยตัวอักษรภาษาอังกฤษ 26 ตัว
"^[az]+$" // สตริงที่ประกอบด้วยตัวอักษรภาษาอังกฤษ 26 ตัว
"^[az]+$" // สตริงที่ประกอบด้วยตัวพิมพ์เล็กของ 26 ตัวอักษรภาษาอังกฤษ
"^[a-za-z0-9]+$" // สตริงที่ประกอบด้วยตัวเลขและ 26 ตัวอักษรภาษาอังกฤษ
"^// w+$" // สตริงที่ประกอบด้วยตัวเลข 26 ตัวอักษรภาษาอังกฤษหรือขีดล่าง 26 ตัวอักษรภาษาอังกฤษ
"^[// w-]+(//. [// w-]+)*@[// w-]+(//. [// w-]+)+$" // ที่อยู่อีเมล
"^[a-za-z]+: // (// w+(-// w+)*) (//. (// w+(-// w+)*))*(//? // s*)? $" // url
"^[a-za-z0-9 _]*$"
พื้นฐานของการแสดงออกปกติ
^ ตรงกับอินพุตหรือจุดเริ่มต้นของบรรทัด /^ a / matches "a" แต่ไม่ใช่ "A"
$ ตรงกับจุดสิ้นสุดของอินพุตหรือบรรทัด / a $ / matches "a" แต่ไม่ใช่ "A"
* จับคู่ metacharacter ก่อนหน้า 0 หรือมากกว่านั้น / ba* / จะตรงกับ b, ba, baa, baa
+ จับคู่ metacharacter ก่อนหน้า 1 ครั้งขึ้นไป / ba+ / จะตรงกับ ba, baa, baaa
- จับคู่ metacharacter ก่อนหน้า 0 หรือ 1 เวลา / ba? / จะตรงกับ b, ba
(x) จับคู่ x บันทึก x ในตัวแปรชื่อ $ 1 ... $ 9
x | y ตรงกับ x หรือ y
{n} การจับคู่ที่แน่นอน n ครั้ง
{n,} จับคู่มากกว่า n ครั้ง
{n, m} จับคู่ NM ครั้ง
ชุดอักขระ [xyz] จับคู่อักขระใด ๆ (หรือ metacharacter) ในชุดนี้
[^xyz] ไม่ตรงกับตัวละครใด ๆ ในคอลเลกชันนี้
[/b] จับคู่อักขระ backspace
/b ตรงกับขอบเขตของคำ
/b จับคู่คำที่ไม่ใช่ขอบเขตของคำ
/cx ที่นี่ x เป็นอักขระควบคุม // cm/matches ctrl-m
/d ตรงกับอักขระ // d/=/[0-9]//
/d ตรงกับอักขระที่ไม่ใช่คำว่า // d/=/[^0-9]//
/n ตรงกับอักขระใหม่
/r ตรงกับอักขระส่งคืนรถ
/s จับคู่อักขระช่องว่าง ได้แก่/n,/r,/f,/t,/v ฯลฯ
/s จับคู่อักขระที่ไม่ใช่ไวท์สเปซเท่ากับ/[^/n/f/r/t/v]/
/t ตรงกับอักขระแท็บ
/v ตรงกับอักขระแท็บเปลี่ยนเส้นทาง
/W ตรงกับตัวละครที่สามารถสร้างคำ (ตัวอักษรและตัวเลขซึ่งเป็นคำแปลของฉันรวมถึงตัวเลข) รวมถึงขีดล่างเช่น [/w] ตรงกับ 5 ใน "$ 5.98" เท่ากับ [A-ZA-Z0-9]
/w จับคู่อักขระที่ไม่สามารถสร้างคำเช่น [/w] ตรงกับ $ ใน "$ 5.98" ซึ่งเท่ากับ [^A-za-Z0-9]