เนื้อความของนิพจน์ทั่วไป
สัญลักษณ์พิเศษถูกใช้ในนิพจน์ทั่วไป ด้านล่างนี้ผมจะแนะนำสัญลักษณ์ต่างๆ ความหมาย และการใช้งานโดยย่อ (หมายเหตุ: "X ขึ้นไปรวมถึง X"):
/ ระบุว่าข้อความต่อไปนี้เป็นสัญลักษณ์พิเศษ ตัวอย่าง: "n" และ "n" มีความสอดคล้องกัน "/n" เหมือนกับอักขระขึ้นบรรทัดใหม่
^ เกิดขึ้นพร้อมกับจุดเริ่มต้นของอินพุต
$ ตรงกับส่วนท้ายของอินพุต
* หากอักขระที่อยู่หน้าสัญลักษณ์นี้เหมือนกัน 0 ครั้งขึ้นไป แสดงว่ามีความสอดคล้องกัน ตัวอย่าง: "zo*" สอดคล้องกับ "zoo" และ "z"
+ หากอักขระที่อยู่หน้าสัญลักษณ์นี้เหมือนกันมากกว่าหนึ่งครั้ง แสดงว่ามีความสอดคล้องกัน ตัวอย่าง: "zo*" สอดคล้องกับ "zoo" แต่ไม่สอดคล้องกับ "z"
? หากอักขระที่อยู่หน้าสัญลักษณ์นี้เหมือนกัน 0 หรือ 1 ครั้ง แสดงว่ามีความสอดคล้องกัน ตัวอย่าง: "a?ve?" สอดคล้องกับ "ve" ใน "never"
สอดคล้องกับตัวอักษรเดี่ยวทั้งหมด ยกเว้นการขึ้นบรรทัดใหม่
(นิพจน์ทั่วไป) ค้นหาข้อความที่ตรงกันโดยใช้นิพจน์ที่ระบุ หากพบให้บันทึกไว้ สามารถรับชิ้นส่วนที่สอดคล้องกันได้จาก
พบในอาร์เรย์ที่ได้รับจากวิธี Match
ถ้าค่าใดค่าหนึ่งของ x|yx และ y เท่ากัน จะถือว่าสอดคล้องกัน ตัวอย่าง: "(z|f)ood" สอดคล้องกับ "สวนสัตว์" และ "อาหาร"
{n} n เป็นจำนวนเต็มเหนือ 0 หากเหมือนกับข้อความก่อนหน้า n ครั้ง แสดงว่าทั้งสองมีความสอดคล้องกัน ตัวอย่าง: "o" ใน "o{2}" และ "Bob" ต่างกัน
สอดคล้องกับ "o" สองตัวแรกใน "foooood"
{n,} n เป็นจำนวนเต็มเหนือ 0 ต้องสอดคล้องกับข้อความก่อนหน้าอย่างน้อย n ครั้ง
{n,m} จำนวนเต็มทั้งสอง องศาในช่วง n ถึง m มีความสม่ำเสมอ
[xyz] จะถือว่าสอดคล้องกันหากเหมือนกับอักขระใดๆ ในวงเล็บเหลี่ยม
[^xyz] ตรงกันข้ามกับที่กล่าวมาข้างต้น
[az] ช่วงของอักขระตั้งแต่ "a" ถึง "z" ถือว่าสอดคล้องกัน
[^az] ตรงกันข้ามกับข้างต้น
/b หมายถึงจุดสิ้นสุดของคำ ตัวอย่าง: "er/b" สอดคล้องกับ "er" ของ "never" แต่ไม่สอดคล้องกับ "er" ของ "กริยา"
/B ระบุจุดสิ้นสุดของคำที่ไม่ใช่คำ
/d แทนตัวเลข
/D หมายถึงไม่ใช่ตัวเลข
/s หมายถึง ช่องว่าง
/S หมายถึงไม่มีช่องว่าง
/w หมายถึงอักขระตัวอักษรและตัวเลขทั้งหมด
/W ไม่ใช่อักขระตัวอักษรและตัวเลขทั้งหมด
ฉัน (ไม่สนใจตัวพิมพ์เล็กและตัวพิมพ์ใหญ่)
g (ค้นหารูปแบบที่เกิดขึ้นทั้งหมดในข้อความฉบับเต็ม)
gi (ค้นหาข้อความแบบเต็ม ละเว้นตัวพิมพ์)
/num num ควรถูกกำหนดให้เป็นจำนวนบวก เปรียบเทียบกับส่วนที่เก็บไว้แล้ว ตัวอย่าง: "(.)/1" เหมือนกับสองรายการติดต่อกัน
ข้อความมีความสอดคล้องกัน
2. วิธีกำหนดข้อความหลักของประโยค:
วิธีที่ 1: เขียนโดยตรง
var s=/นิพจน์ทั่วไป/i หรือ g หรือ ig
วิธีที่ 2: สร้างอินสแตนซ์ของวัตถุ:
var s=new RegExp(นิพจน์ปกติ, i หรือ g หรือ ig)
สามวิธีที่เกี่ยวข้องกับนิพจน์ทั่วไป:
1 วิธีการดำเนินการ
คำอธิบาย: ค้นหาภายในบรรทัดข้อความที่ระบุ
โครงสร้าง: Regular expression.exec(string)
คำอธิบาย: การค้นหาส่งคืน:
ไม่ได้เรียกข้อมูล null;
หลังจากดึงผลลัพธ์ที่สอดคล้องกันแล้ว
ตัวอย่าง:
ข้อมูลโค้ดมีดังนี้:
<สคริปต์>
var s='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp'
var r=regExp ใหม่('g','i');
var a=r.exec(s);
การแจ้งเตือน (ก);
</สคริปต์>
2 วิธีการคอมไพล์:
คำอธิบาย: ปรับเปลี่ยนรูปแบบภายในของการเป็นตัวแทนปกติ
โครงสร้าง: Regular expression.compile('text','g or i or ig')
ความเห็น : ไม่มีอะไรจะพูดมาก
ตัวอย่าง:
ข้อมูลโค้ดมีดังนี้:
<สคริปต์>
var s='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp'
var r=new RegExp('[AZ]','g');
var a=s.match(r);
การแจ้งเตือน (ก);
r.compile('[az]','g');
var a=s.match(r);
การแจ้งเตือน (ก);
</สคริปต์>
3 วิธีทดสอบ:
คำอธิบาย: ทำแบบทดสอบตามชื่อเลย
โครงสร้าง: Regular expression.test(string)
ความเห็น: กลับ:
ไม่พบเท็จ
พบจริง;
ตัวอย่าง:
ข้อมูลโค้ดมีดังนี้:
<สคริปต์>
var ใหม่=/อีกครั้ง/g;
var msg='กลับมา';
var msg1='กูน';
alert(ทดสอบใหม่(msg));
alert(ทดสอบใหม่(msg1));
</สคริปต์>
4 วิธีการแทนที่:
คำอธิบาย: ค้นหาสิ่งที่สอดคล้องกันและแทนที่
โครงสร้าง: string.replace (นิพจน์ทั่วไป, สตริงการแทนที่)
คำอธิบาย: สตริงไม่มีการเปลี่ยนแปลงและสำเนาของมันจะถูกส่งกลับ
ตัวอย่าง:
ข้อมูลโค้ดมีดังนี้:
<สคริปต์>
var s='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp'
var r=new RegExp('[AZ]','g');
var a=s.replace(/[az]/g,'A');
การแจ้งเตือน (ก);
</สคริปต์>
5 วิธีการแข่งขัน:
คำอธิบาย : ดำเนินการค้นหา.
โครงสร้าง: string.match (นิพจน์ปกติ)
คำอธิบาย: ส่งกลับลำดับ
ตัวอย่าง:
ข้อมูลโค้ดมีดังนี้:
<สคริปต์>
var ใหม่=/อีกครั้ง/g;
var msg='rererere';
var msg1='กูน';
alert(msg.match(ใหม่));
alert(msg1.match(ใหม่));
</สคริปต์>
6 วิธีแยก:
คำอธิบาย : แยกสตริง
โครงสร้าง: String.split (นิพจน์ปกติ)
คำอธิบาย: ส่งกลับลำดับ
ตัวอย่าง:
ข้อมูลโค้ดมีดังนี้:
<สคริปต์>
var s="สวัสดีโลกใบนี้";
var p=//s/g;
var a=s.split(p);
การแจ้งเตือน (ก);
</สคริปต์>
7 วิธีการค้นหา:
คำอธิบาย: ส่งกลับตำแหน่งของสตริงที่สอดคล้องกัน (นี่มีประโยชน์มากกว่า indexOf มาก!)
โครงสร้าง: string.search (นิพจน์ปกติ)
ความเห็น : กลับมา
หากพบจำนวนเต็มบวก
-1 หากไม่พบ
ตัวอย่าง:
ข้อมูลโค้ดมีดังนี้:
<สคริปต์>
var s="สวัสดีโลกใบนี้";
var p=/ดี/g;
var a=s.search(p);
การแจ้งเตือน (ก);
</สคริปต์>
เปลี่ยนตัวอย่างของวิธีการแทนที่:
ข้อมูลโค้ดมีดังนี้:
<สคริปต์>
var s="hellOSCF";
var r=new RegExp("[AZ]", "g");
s=s.replace(r,"a");
การแจ้งเตือน
</สคริปต์>
ในที่สุดก็มีคุณลักษณะต่างๆ ของเขา
1 แอตทริบิวต์ LastIndex:
คำอธิบาย: กำหนดตำแหน่งเริ่มต้นของการค้นหาและรับค่า
โครงสร้าง: Regular expression.lastIndex(=value)
ความเห็น:
เมื่อ LastIndex มากกว่าความยาวของข้อความที่ดึงมา หากดำเนินการโดยใช้วิธี test หรือ exec การดำเนินการจะล้มเหลว
คุณสมบัติ LastIndex ถูกตั้งค่าเป็น 0
เมื่อ LastIndex เท่ากับความยาวของข้อความค้นหา ถ้าเนื้อหาของนิพจน์ว่างเปล่า ในกรณีอื่นๆ
การดำเนินการล้มเหลวและรีเซ็ตเป็น 0
ในกรณีอื่นนอกเหนือจากที่กล่าวข้างต้น LastIndex จะถูกตั้งค่าให้เป็นตัวชี้ตำแหน่งของสตริงข้อความที่สอดคล้องกันล่าสุด
2 แอตทริบิวต์แหล่งที่มา
คำอธิบาย: ส่งกลับข้อความของนิพจน์ทั่วไป
โครงสร้าง: Regular expression.source
ตัวอย่าง:
ข้อมูลโค้ดมีดังนี้:
<สคริปต์>
var s=/[az]{3}/W/s/g;
var s1=regExp ใหม่("[az]{3}/W","g");
การแจ้งเตือน (s.source);
การแจ้งเตือน (s1.source);
</สคริปต์>
ด้านล่างนี้ฉันจะเขียนฟังก์ชันการประมวลผลอักขระหลายรายการ:
1 ห้ามใช้ตัวเลขโดยเด็ดขาด
ข้อมูลโค้ดมีดังนี้:
ตรวจสอบฟังก์ชัน(ผงชูรส){
var exe=//d/g;
ถ้า (exe.test (msg)) กลับ (0);
อย่างอื่นกลับมา(1)
-
2 ตัวอักษรเท่านั้น
ข้อมูลโค้ดมีดังนี้:
ตรวจสอบฟังก์ชัน(ผงชูรส){
var exe=//W/g;
ถ้า (exe.test (msg)) กลับ (0);
อย่างอื่นกลับ (1);
-
3 รหัสต้องห้ามอย่างเคร่งครัด
ข้อมูลโค้ดมีดังนี้:
ตรวจสอบฟังก์ชัน(ผงชูรส){
var exe=/<(/w|/W)*>/g;
ถ้า (exe.test (msg)) กลับ (0);
อย่างอื่นกลับ (1);