Es gibt so einen Code: Das Ergebnis von if (RegExp.test(num)) ist im IE jedes Mal TRUE, aber wenn es in Fire Fox beim ersten Mal True ist, muss es beim zweiten Mal False sein und wird angezeigt danach abwechselnd. Schauen Sie sich die bisherigen Lösungen an:
Methode 1: Ändern Sie if (RegExp.test(num)) in if (num.match(RegExp))
Methode 2: Verwenden Sie die RegExp-Objektverarbeitung, also new RegExp("^(-)?[0-9]*$").
Ich weiß nicht, ob es überprüft wurde, aber ich habe es versucht Der Kompatibilitätseffekt kann tatsächlich nicht erreicht werden. Das grundlegende Problem besteht nicht darin, welches reguläre Objekt verwendet werden soll, sondern das „g“ im Ausdruck führt dazu, dass der Effekt in Firefox nicht mit dem IE übereinstimmt Variable, daher ist die einfachste und effektivste Möglichkeit die Verwendung von var RegExp =/^(-)?[0-9]*$/g. Wechseln Sie zu var RegExp=/^(-)?[0-9]*$ /, bei einer guten Lösung geht es nicht um Komplexität, sondern um die richtige Lösung. Schließlich ist die Situation nicht üblich.
Funktion isNum(num){
if(num.length==0){
return false;
}
var RegExp=/^(-)?[0-9]*$/g;
if (RegExp.test(num)){
return true;
}anders{
return false;
}
}