Existe un fragmento de código de este tipo: el resultado de si (RegExp.test(num)) es VERDADERO cada vez en IE, pero en Fire Fox, si es Verdadero la primera vez, debe ser Falso la segunda vez y aparece alternativamente a partir de entonces. Echemos un vistazo a algunas soluciones anteriores: Método 1: cambiar if (RegExp.test(num)) a if (num.match(RegExp)) No sé si se han verificado. De todos modos, lo intenté y no pude lograr el efecto de compatibilidad. De hecho, el problema más fundamental no es qué objeto normal usar, sino la "g" en la expresión que causa el problema. efecto en Firefox es inconsistente con IE Firefox trata RegExp como una variable global, por lo que la forma más simple y efectiva es cambiar var RegExp=/^(-)?[0-9]*$/g a var. RegExp=/^(-)?[0-9]*$/ , una buena solución no se preocupa por la complejidad, pero la solución correcta no es común después de todo. la función esNúm(núm){ var RegExp=/^(-)?[0-9]*$/g;
Método 2: utilizar el procesamiento de objetos RegExp, es decir, nueva RegExp("^(-)?[0-9]*$")
si(núm.longitud==0){
devolver falso;
}
si (RegExp.test(núm)){
devolver verdadero;
}demás{
devolver falso;
}
}