วิธีง่ายๆในการใช้ความสม่ำเสมอเพื่อตรวจสอบว่าอินพุตเป็นตัวเลข:
input1 = '0281234567'; input2 = '0282345678'; var reg =^/d+$/g; reg.test(input1); //truereg.test( INPUT2); //เท็จ
ฉันพบว่าค่าที่ส่งคืนในระหว่างการทดสอบครั้งที่สองไม่ถูกต้อง หลังจากไม่รวมปัจจัยการรบกวนต่าง ๆ เช่นข้อผิดพลาดในการเขียนความล้มเหลวในการรับค่า ฯลฯ ฉันพบว่า Reg ปกติไม่สามารถดำเนินการได้อย่างถูกต้องเฉพาะในระหว่างการดำเนินการครั้งที่สองของการดำเนินการครั้งที่สองของ Reg ฉันไม่เคยพบปัญหานี้มาก่อนดังนั้นฉันจึงค้นหาข้อมูลที่เกี่ยวข้อง
ปรากฎว่าปัญหานี้เกิดจาก /g จริง ๆ และฉันพบว่าฉันใช้ในทางที่ผิดจริงสำหรับกฎนี้ เนื่องจาก /g แสดงถึงการจับคู่ทั่วโลกมี LastIndex อยู่ภายในเมื่อตัดสินกฎเพื่อบันทึกตำแหน่งการจับคู่สุดท้าย เมื่อมีการโทรซ้ำแล้ว LastIndex จะยังคงจับคู่ต่อไปซึ่งจะนำไปสู่ข้อผิดพลาดในการตัดสิน หากคุณเข้าใจหลักการและแก้ปัญหามันจะชัดเจน:
1. ลบ /g และอย่าเพิ่ม /ทำเครื่องหมายที่จะไม่จำเป็นถ้า /g ไม่จำเป็น
2. ก่อนการแข่งขันครั้งที่สองให้ตั้งค่า LastIndex ด้วยตนเองเป็น 0 ตัวอย่างด้านบน: reg.lastIndex () = 0
ด้านบนเป็นวิธีแก้ปัญหาที่การทดสอบปกติ () ไม่สามารถดำเนินการได้อย่างถูกต้องเนื่องจากการใช้ /g ในทางที่ผิดใน JavaScript แนะนำให้คุณ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!