2011-09-14 49 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

我知道,只是有參考可能會有所幫助。 –