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. Jetons un coup d'œil à quelques solutions passées : Méthode 1 : remplacez if (RegExp.test(num)) par if (num.match(RegExp)) Je ne sais pas s'ils ont été vérifiés. Quoi qu'il en soit, j'ai essayé et échoué à obtenir l'effet de compatibilité. En fait, le problème le plus fondamental n'est pas l'objet régulier à utiliser, mais le "g" dans l'expression qui provoque le problème. l'effet dans Firefox est incompatible avec IE. Firefox traite RegExp comme une variable globale, donc le moyen le plus simple et le plus efficace est de changer var RegExp=/^(-)?[0-9]*$/g en var. RegExp=/^(-)?[0-9]*$/ , une bonne solution ne se soucie pas de la complexité, mais la bonne solution n'est pas courante après tout. la fonction estNum(num){ var RegExp=/^(-)?[0-9]*$/g;
Méthode 2 : utiliser le traitement des objets RegExp, c'est-à-dire new RegExp("^(-)?[0-9]*$")
si(num.length==0){
renvoie faux ;
}
si (RegExp.test(num)){
renvoie vrai ;
}autre{
retourner faux ;
}
}