มีโค้ดดังนี้ ผลลัพธ์คือ if (RegExp.test(num)) เป็น TRUE ทุกครั้งใน IE แต่ใน Fire Fox หากเป็น True ในครั้งแรกจะต้องเป็น False ในครั้งที่สองจึงปรากฏขึ้น สลับกันหลังจากนั้น มาดูวิธีแก้ปัญหาที่ผ่านมาบ้าง: วิธีที่ 1: เปลี่ยน if (RegExp.test(num)) เป็น if (num.match(RegExp)) ฉันไม่รู้ว่าพวกเขาได้รับการยืนยันแล้วหรือยัง อย่างไรก็ตาม ฉันได้ลองแล้วและล้มเหลวในการบรรลุผลความเข้ากันได้ เอฟเฟกต์ใน Firefox จะไม่สอดคล้องกับ IE Firefox ถือว่า RegExp เป็นตัวแปรร่วม ดังนั้นวิธีที่ง่ายและมีประสิทธิภาพมากที่สุดคือการเปลี่ยน var RegExp=/^(-)?[0-9]*$/g เป็น var RegExp=/^(-)?[0-9]*$/ วิธีแก้ปัญหาที่ดีไม่สนใจความซับซ้อน แต่วิธีแก้ปัญหาที่ถูกต้องไม่ใช่เรื่องปกติ ฟังก์ชั่น isNum (ตัวเลข) { var RegExp=/^(-)?[0-9]*$/g;
วิธีที่ 2: ใช้การประมวลผลวัตถุ RegExp นั่นคือ new RegExp("^(-)?[0-9]*$")
ถ้า(num.length==0){
กลับเท็จ;
-
ถ้า (RegExp.test(ตัวเลข)){
กลับเป็นจริง;
}อื่น{
กลับเท็จ;
-
-