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