このようなコードがあります。IE では if (RegExp.test(num)) の結果は毎回 TRUE になりますが、Fire Fox では、最初に True であれば、2 回目は False でなければなりません。以降交互に。過去の解決策を見てみましょう:
方法 1: if (RegExp.test(num)) を if (num.match(RegExp)) に変更します。
方法 2: RegExp オブジェクト処理、つまり new RegExp("^(-)?[0-9]*$") を使用します。
とにかく、試してみました。実際、最後の根本的な問題は、どの通常のオブジェクトを使用するかということではありませんが、式の「g」により、Firefox では RegExp がグローバルとして扱われるという効果が得られません。したがって、最も簡単で効果的な方法は、var RegExp =/^(-)?[0-9]*$/g を使用することです。var RegExp=/^(-)?[0-9]*$ に変更します。 /、良いソリューションは複雑さを気にしませんが、適切なソリューションなので、結局のところ、この状況は一般的ではありません。
関数 isNum(num){
if(num.length==0){
false を返します。
var
RegExp=/^(-)?[0-9]*$/g;
if (RegExp.test(num)){
true を返します。
}それ以外{
false を返します。
}
}