2011-09-14 54 views
5

我想从使用javascript的字符串中删除一个英镑符号(£)。我正在尝试使用如何替换javascript中的英镑(货币)符号?

str = str.replace(/\£/g, ""); 

但是,它并没有删除标志。

str的值正在从一个范围中取出(并且正在提取正确的值)。这个跨度使用JavaScript被预先设定的,与它的字符串作为

£ 

上删除英镑符号的最佳途径的任何想法被编码?

+9

'replace('£','')' – Zirak

+3

@Zirak ... that does not work http://jsfiddle.net/EUV7c/ –

回答

9

您可能需要使用unicode这一点。例如,'£10.00'.replace(/\u00A3/g, '');

+0

这一款似乎很适合我。尝试了其他一些答案,但是这个解决了这个问题。其他方面我的部分代码可能稍微差一点,但其他解决方案可能适用于其他人。 – Lee

+0

我猜测其他一些可能没有奏效的原因归结为页面加载的字符集(尽管我没有证实)。这种或那种方式似乎有某些上下文中字面上的“英镑”字符不符合预期的匹配。 – jmar777

1

你可以做

"hello w£orld".replace(/£/g,"") 
+0

你的g在哪里? – naveen

+1

只有一个£符号时没有必要。啊......但是作者确实在那里......我会编辑它 –

3

从你的正则表达式中删除反斜杠。

+2

反斜杠不应该伤害任何东西。 – user113716

+0

+1 @patrick dw:不知道。抱歉。 – naveen

3

这样,它为我的作品:

var str = "£sdfsdf"; 

str = str.replace("£", ""); 

alert(str); 

小提琴这里:http://jsfiddle.net/peUrn/1/

1

简单的方法是:

str.replace('£', ''); 
+0

这不适用于HTML,因为'脚本'区域是“受保护的”。 (这比在CDATA之外写入'if(一个& & b){... }'好得多:)-) – 2011-09-14 15:26:08

+0

@pst为什么?他说它的编码 – nidhin

+0

好点...不太确定现在发生了什么。 – 2011-09-14 15:31:48

0

通过由一个,两个或三个换码序列代表字符

这意味着的UTF-8编码替换某些字符的每个实例进行编码的统一资源标识符(URI)成分中,为了编码一个磅符号,JavaScript使用2个字符。

£ = %C2%A3 

有关更多信息,请参阅http://fyneworks.blogspot.com/2008/06/british-pound-sign-encoding-revisited.html

最好使用%C2%A3代替脚本中的磅符号。

+0

这是用于编码到URL/URI中,而不是编码成字符串或正则表达式(如JavaScript代码)。 – 2011-09-14 15:28:32

+0

我知道,只是有参考可能会有所帮助。 –