IE - 无法获得财产

时间:2012-12-28 22:33:49

标签: javascript internet-explorer

我在IE 9和10中遇到错误。错误是"无法获取属性'替换'未定义或空引用"。如果我们要相信Microsoft的错误,它会报告错误发生在以下函数的value.replace行上:

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

    return Number($retval);
}

我只是在IE中遇到困难。所有其他浏览器完美地执行此功能。我一直在努力工作几个小时。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

$value = new String($value);

在使用'replace'之前。

答案 1 :(得分: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是什么,并希望从那里调试您的问题。

答案 2 :(得分:0)

也可以用以下内容替换条件:

if (!$value)

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