0

我在 IE 9 和 10 中遇到错误。错误是“无法获取未定义或空引用的属性'替换'”。如果我们相信微软的错误,它会报告错误发生在以下函数的 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

尝试

$value = new String($value);

在使用“替换”之前。

于 2012-12-28T22:38:13.257 回答
0

正如 Rocket Hazmat 所建议的那样,问题很可能是 $value 不是字符串。您可以使用一种快速而肮脏的方法来调试它是什么:

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 回答
0

不妨将条件替换为:

if (!$value)

这样所有的空值和未定义的值都会变成 0.00 字符串。

于 2012-12-28T22:45:39.777 回答