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. Eche un vistazo a las soluciones anteriores:
Método 1: cambie if (RegExp.test(num)) a if (num.match(RegExp))
Método 2: utilizar el procesamiento de objetos RegExp, es decir, new RegExp("^(-)?[0-9]*$")
. No se puede lograr el efecto de compatibilidad. De hecho, el último El problema fundamental no es qué objeto normal usar, pero la "g" en la expresión hace que el efecto en Firefox sea inconsistente con IE. Firefox trata la RegExp como una expresión global. variable, por lo que la forma más simple y efectiva es usar var RegExp =/^(-)?[0-9]*$/g Cambiar a var RegExp=/^(-)?[0-9]*$ /, una buena solución no se preocupa por la complejidad, sino por la solución correcta, así que, después de todo, la situación no es común.
la función esNum(núm){
si(núm.longitud==0){
devolver falso;
}
var RegExp=/^(-)?[0-9]*$/g;
si (RegExp.test(núm)){
devolver verdadero;
}demás{
devolver falso;
}
}