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. Werfen wir einen Blick auf einige frühere Lösungen: Methode 1: Ändern Sie if (RegExp.test(num)) in if (num.match(RegExp)) Ich weiß nicht, ob sie überprüft wurden. Ich habe jedoch versucht, den Kompatibilitätseffekt zu erzielen. Tatsächlich ist das grundlegendste Problem nicht, welches reguläre Objekt verwendet werden soll, sondern das „g“ im Ausdruck, das das verursacht Der Effekt in Firefox ist nicht mit dem IE konsistent. Firefox behandelt RegExp als globale Variable. Daher ist es am einfachsten und effektivsten, var RegExp=/^(-)?[0-9]*$/g in var zu ändern RegExp=/^(-)?[0-9]*$/ , eine gute Lösung kümmert sich nicht um Komplexität, sondern um die richtige Lösung. Diese Situation kommt schließlich nicht häufig vor. Funktion isNum(num){ var RegExp=/^(-)?[0-9]*$/g;
Methode 2: Verwenden Sie die RegExp-Objektverarbeitung, dh new RegExp("^(-)?[0-9]*$")
if(num.length==0){
return false;
}
if (RegExp.test(num)){
return true;
}anders{
return false;
}
}