เกี่ยวกับปัญหาของการแบ่งการทดสอบสตริงในนิพจน์ทั่วไปเรามีสองวิธี: ทดสอบ () และ exec () ฉันจะไม่อธิบายรายละเอียดเกี่ยวกับความแตกต่างระหว่างสองวิธีนี้ สิ่งสำคัญคือการทดสอบ () ส่งคืนค่าบูลีนและ exec () ส่งคืนอาร์เรย์อักขระที่ตรงกัน อย่างไรก็ตามวันนี้ฉันพบปัญหา โปรแกรมนั้นง่ายมาก แต่ปัญหาภายในทำให้ฉันไม่เข้าใจ ฉันไม่พบคำตอบออนไลน์ (เปรียบเทียบส่วนตัว)
การคัดลอกรหัสมีดังนี้:
รูปแบบ var = ใหม่ regexp ("จับคู่", "ig");
การแจ้งเตือน (pattern.test ("Match"));
การแจ้งเตือน (pattern.exec ("Match"));
ค่าของการแจ้งเตือนแรก () เป็นจริงตามที่คาดไว้
แต่ค่าการทดสอบที่สองนั้นเป็นโมฆะโดยไม่คาดคิด
ฉันไม่รู้ว่าหลักการเกี่ยวกับคำถามนี้เป็นอย่างไรเพราะฉันไม่เห็นซอร์สโค้ดฟังก์ชั่น หากเพื่อนสามารถชี้ให้เห็นได้ฉันรู้สึกขอบคุณ! -