يوجد مثل هذا الجزء من التعليمات البرمجية: نتيجة if (RegExp.test(num)) تكون TRUE في كل مرة في IE، ولكن في Fire Fox، إذا كانت True في المرة الأولى، فيجب أن تكون False في المرة الثانية، وتظهر بالتناوب بعد ذلك. ألقِ نظرة على الحلول السابقة:
الطريقة الأولى: تغيير if (RegExp.test(num)) إلى if (num.match(RegExp))
الطريقة الثانية: استخدام معالجة كائن RegExp، أي RegExp الجديد("^(-)?[0-9]*$")
. لا يمكن تحقيق تأثير التوافق. في الواقع، المشكلة الأساسية ليست في أي كائن عادي يجب استخدامه، ولكن "g" في التعبير يتسبب في عدم توافق التأثير في Firefox مع IE متغير، وبالتالي فإن الطريقة الأبسط والأكثر فعالية هي استخدام var RegExp =/^(-)?[0-9]*$/g التغيير إلى var RegExp=/^(-)?[0-9]*$ /، الحل الجيد لا يهمه التعقيد، بل الحل الصحيح، لذا فالوضع ليس شائعًا بعد كل شيء.
الدالة هيرقم(رقم){
إذا (عدد الطول==0){
عودة كاذبة.
}
var RegExp=/^(-)?[0-9]*$/g;
إذا (RegExp.test(num)){
عودة صحيحة؛
}آخر{
عودة كاذبة.
}
}