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