Есть такой кусок кода: результат if (RegExp.test(num)) каждый раз имеет значение TRUE в IE, но в Fire Fox, если в первый раз это True, во второй раз оно должно быть False, и появляется в дальнейшем поочередно. Взгляните на предыдущие решения:
Способ 1. Измените if (RegExp.test(num)) на if (num.match(RegExp))
Способ 2: использовать обработку объекта RegExp, то есть новый RegExp("^(-)?[0-9]*$").
Я не знаю, проверено ли это. В любом случае, я пробовал, но это не так. не может достичь эффекта совместимости.Фактически, последнее. Фундаментальная проблема не в том, какой обычный объект использовать, но буква «g» в выражении приводит к тому, что эффект в Firefox несовместим с IE. Firefox рассматривает RegExp как глобальный. переменная, поэтому самый простой и эффективный способ — использовать var RegExp =/^(-)?[0-9]*$/g. Измените на var RegExp=/^(-)?[0-9]*$. /, хорошее решение не заботится о сложности, а правильное решение, поэтому В конце концов, ситуация не является распространенной.
функция isNum(num){
если (num.length == 0) {
вернуть ложь;
}
var RegExp=/^(-)?[0-9]*$/g;
если (RegExp.test(num)){
вернуть истину;
}еще{
вернуть ложь;
}
}