0

IE 9 および 10 でエラーが発生しました。エラーは、「未定義または null 参照のプロパティ 'replace' を取得できません」です。Microsoft のエラーを信じる場合、次の関数の value.replace 行でエラーが発生していると報告されます。

function jsstrtonum($value) {
    if($value == '') {
        $value = '0.00';
    }
    var $retval = $value.replace(/[^0-9\.]+/g, '');

    return Number($retval);
}

私はIEでのみ問題を抱えています。他のすべてのブラウザは、この機能を問題なく実行します。私はこれに何時間も取り組んできました。どんな助けでも大歓迎です。

4

3 に答える 3

0

条件を次のように置き換えることもできます。

if (!$value)

そのため、すべてのnullと未定義の値が0.00文字列になります。

于 2012-12-28T22:45:39.777 に答える
0

試す

$value = new String($value);

'replace'を使用する前に。

于 2012-12-28T22:38:13.257 に答える
0

Rocket Hazmatが示唆したように、問題は$valueが文字列以外のものである可能性が最も高いです。それが何であるかをデバッグするために使用できる1つの迅速で汚いアプローチは次のとおりです。

function jsstrtonum($value) {
    if (!$value.replace) {
        alert($value);
        // Alternatively if the IE developer tool gives you a console you could:
        // console.log($value);
    }
}

このようにして、何が何で$valueあるかを確認し、うまくいけばそこから問題をデバッグできます。

于 2012-12-28T22:38:31.480 に答える