Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ความแตกต่างระหว่างวิธีการทดสอบ () และ exec () ใน Javascript


ทดสอบการทดสอบการจับคู่และส่งคืนบูลีนในขณะที่ exec จับกลุ่มและจับคู่ regex กับอินพุต

หากคุณต้องการทดสอบสตริงอินพุตเพื่อให้ตรงกับนิพจน์ทั่วไปเท่านั้น RegExp.test ก็เหมาะสมที่สุด มันจะให้ค่าส่งคืนบูลีนซึ่งทำให้เหมาะสำหรับเงื่อนไข

RegExp.exec ให้ค่าส่งคืนเหมือนอาร์เรย์พร้อมแคปเจอร์กรุ๊ปและดัชนีที่ตรงกันทั้งหมด ดังนั้นจึงมีประโยชน์เมื่อคุณต้องการทำงานกับกลุ่มหรือดัชนีที่จับได้หลังการแข่งขัน

ตัวอย่าง

console.log(/^([a-z]+) ([A-Z]+)$/.exec("hello WORLD"))
console.log(/^([a-z]+) ([A-Z]+)$/.test("hello WORLD"))

ผลลัพธ์

[ 'hello WORLD', 
   'hello', 
   'WORLD', 
   index: 0, 
   input: 'hello WORLD', 
   groups: undefined ] 
true

โปรดทราบว่าดัชนีแรกในอาร์เรย์ที่ส่งคืนโดย exec เป็นสตริงที่ตรงกันทั้งหมด ดัชนีต่อไปนี้คือกลุ่มแต่ละกลุ่มที่ regex จับ