2012-03-02 56 views
0

我有一个字符串,如“价值= $ VAL $”,我想与像IE9的JavaScript更换不起作用

所以最终的字符串可以看看“$ 0.00”喜欢“的价值一定值来代替$ VAL $ = $ 0.00“

这适用于Firefox和IE 7和IE 8,但在IE 9中无法使用任何想法为什么?以及我如何解决这个问题?

除$ 0.00(例如$ 5.00)以外的任何值都没有任何问题。

http://jsfiddle.net/jhdVV/5/

编辑:一个文本框和一个按钮与DIFF值来测试更新的链接。

http://jsfiddle.net/jhdVV/10/

在IE 9我越来越 “值= $ VAL $ .00”

浏览器是在标准模式。

注意: 我正在使用遗留代码,所以理想情况下我想远离诱人的jQuery解决方案。

+1

我不知道解决方案,但问题是$ 0是正则表达式。 – 2012-03-02 18:18:52

+0

@Boo感谢您指出$ 0。我试着用$ 0.00和IE9正确替换它。但是我首先用\\ $转义$。看起来像一个IE9的错误? : -/ – N30 2012-03-02 18:28:53

回答

2

替换文本中的$0本质上是一个未初始化的变量,其行为未定义。所以,摆脱美元符号:

$$0.00 
+0

感谢您的解释。增加额外的$符号的伎俩。 – N30 2012-03-02 19:00:16

5

你不是简单地这样做的原因吗?

function replaceValue(source, find, replacement) { 
    return source.replace(find, replacement); 
} 
+0

感谢您的启发。出于某种原因,我相信我需要逃避那些特殊字符。我尝试了你的代码,它的工作原理。如果有人回答为什么我的代码在IE9中表现出奇怪的一天,我会等待,如果我没有得到任何令人满意的答案,将标记为答案。同时,+1为你.. – N30 2012-03-02 18:46:50