ความแตกต่างระหว่างการทดสอบ, exec, วิธีการจับคู่ในนิพจน์ปกติของ JS
ทดสอบ
ทดสอบส่งคืนบูลีนเพื่อค้นหาโหมดการดำรงอยู่ในสตริงที่เกี่ยวข้อง
var str = "1a1b1c";
var reg = ใหม่ regexp ("1. ", "");
การแจ้งเตือน (reg.test (str));
ผู้บริหาร
Exec ค้นหาและส่งคืนผลลัพธ์การจับคู่ปัจจุบันและส่งคืนในรูปแบบของอาร์เรย์
var str = "1a1b1c";
var reg = ใหม่ regexp ("1. ", "");
var anrr = reg.exec (str);
หากไม่มีโหมดโหมด ARR จะเป็นโมฆะมิฉะนั้น arr จะมีความยาวอาร์เรย์ 1 และค่าของมันคือการจับคู่ปัจจุบัน มีสามแอตทริบิวต์ของ ARR: ตำแหน่งของการจับคู่ปัจจุบันของดัชนี;
วิธี EXEC ได้รับผลกระทบจากพารามิเตอร์ G. หากมีการระบุ G เมื่อ Exec ถูกเรียกในครั้งต่อไปคุณจะเริ่มจาก LastIndex ซึ่งถูกจับคู่
var str = "1a1b1c";
var reg = ใหม่ regexp ("1. ", "");
การแจ้งเตือน (reg.exec (str) [0]);
การแจ้งเตือน (reg.exec (str) [0]);
เอาต์พุตทั้งสองด้านบนคือ 1a ตอนนี้ดูที่พารามิเตอร์ที่ระบุ G:
var str = "1a1b1c";
var reg = ใหม่ regexp ("1. ", "g");
การแจ้งเตือน (reg.exec (str) [0]);
การแจ้งเตือน (reg.exec (str) [0]);
เอาต์พุตแรก 1a เอาต์พุตที่สอง 1b
จับคู่
การจับคู่เป็นวิธีการของวัตถุสตริง
var str = "1a1b1c";
var reg = ใหม่ regexp ("1. ", "");
การแจ้งเตือน (str.match (reg));
วิธีนี้เป็นเช่น EXEC แต่: EXEC เป็นวิธีการของวัตถุ Regexp; มีความแตกต่างอีกประการหนึ่งระหว่างทั้งสองซึ่งเป็นคำอธิบายของพารามิเตอร์ G.
หากระบุพารามิเตอร์ G การจับคู่จะกลับไปที่ผลลัพธ์ทั้งหมดในแต่ละครั้ง
var str = "1a1b1c";
var reg = ใหม่ regexp ("1. ", "g");
การแจ้งเตือน (str.match (reg));
// การแจ้งเตือน (str.match (reg)); // ประโยคนี้เหมือนกับผลลัพธ์ของประโยคข้างต้นเหมือนกับข้างต้น
ผลลัพธ์นี้เป็นอาร์เรย์ที่มีสามองค์ประกอบซึ่ง ได้แก่ : 1a, 1b, 1c
ฟังก์ชั่นสองอย่างมักใช้ใน JavaScript และการจับคู่และการทดสอบมักใช้ในการแสดงออกปกติ
จับคู่ exmple
คัดลอกรหัสรหัสดังนี้:
var str = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
var regexp = /[ae] /gi;
var rs = str.match (regexp);
// rs = array ('a', 'b', 'c', 'd', 'e', 'a', 'b', 'c', 'd', 'e');
ตัวอย่างทดสอบ
คัดลอกรหัสรหัสดังนี้:
var str = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
var regexp = /[ae] /gi;
var rs = regexp.test (str);
// rs = true;
ตัวอย่าง exc
คัดลอกรหัสรหัสดังนี้:
var str = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
var regexp = /[ae] /gi;
var rs;
ในขณะที่ ((rs = regexp.exec (str))! = null)
-
document.write (RS);
document.write (regexp.lastindex);
document.write ("<br />");
-
เอาท์พุท
-
1
b 2
C 3
d 4
E 5
27
b 28
C 29
d 30
E 31
exc อีกครั้ง exmple
คัดลอกรหัสรหัสดังนี้:
var regexp = /ab* /g;
var str = "abbcdefabh";
var rs;
ในขณะที่ ((rs = regexp.exec (str))! = null)
-
document.write (RS);
document.write (regexp.lastindex);
document.write ("<br />");
-
เอาท์พุท
-
ABB 3
AB 9