Existe um trecho de código assim: o resultado de if (RegExp.test(num)) é TRUE todas as vezes no IE, mas no Fire Fox, se for True na primeira vez, deve ser False na segunda vez e aparece alternadamente depois disso. Vamos dar uma olhada em algumas soluções anteriores: Método 1: Altere if (RegExp.test(num)) para if (num.match(RegExp)) Não sei se foram verificados. De qualquer forma, tentei e não consegui o efeito de compatibilidade. Na verdade, o problema mais fundamental não é qual objeto regular usar, mas o "g" na expressão que causa o. efeito no Firefox ser inconsistente com o IE O Firefox trata o RegExp como uma variável global, então a maneira mais simples e eficaz é alterar var RegExp=/^(-)?[0-9]*$/g para var. RegExp=/^(-)?[0-9]*$/ , uma boa solução não se preocupa com a complexidade, mas a solução certa, afinal. função éNum(num){ var RegExp=/^(-)?[0-9]*$/g;
Método 2: Use o processamento de objeto RegExp, ou seja, new RegExp("^(-)?[0-9]*$")
if(num.comprimento==0){
retornar falso;
}
if (RegExp.teste(num)){
retornar verdadeiro;
}outro{
retornar falso;
}
}