Il existe un tel morceau de code : le résultat de if (RegExp.test(num)) est TRUE à chaque fois dans IE, mais dans Fire Fox, s'il est True la première fois, il doit être False la deuxième fois et apparaît alternativement par la suite. Jetez un œil aux solutions précédentes :
Méthode 1 : remplacez if (RegExp.test(num)) par if (num.match(RegExp))
Méthode 2 : utilisez le traitement d'objet RegExp, c'est-à-dire new RegExp("^(-)?[0-9]*$").
Je ne sais pas si cela a été vérifié. Quoi qu'il en soit, je l'ai essayé mais ça. ne peut pas obtenir l'effet de compatibilité. En fait, le dernier problème fondamental n'est pas de savoir quel objet régulier utiliser, mais le "g" dans l'expression rend l'effet dans Firefox incohérent avec IE. Firefox traite RegExp comme un effet global. variable, donc le moyen le plus simple et le plus efficace est d'utiliser var RegExp =/^(-)?[0-9]*$/g Remplacez par var RegExp=/^(-)?[0-9]*$ /, une bonne solution ne se soucie pas de la complexité, mais la bonne solution, donc après tout, la situation n'est pas courante.
la fonction estNum(num){
si(num.length==0){
renvoie faux ;
}
var RegExp=/^(-)?[0-9]*$/g;
si (RegExp.test(num)){
renvoie vrai ;
}autre{
renvoie faux ;
}
}