2010-12-03 233 views
3

是否可以使用javascript字符串替換函數來翻譯類似特殊字符?javascript替換特殊字符

+1

您可能想使用`「\ xDD」`或`「\ uDDDD``而不是實際的字符,以使大多數編輯器更易於閱讀和管理。 – 2010-12-03 16:12:02

回答

2

是的,而且是可以很簡單:

'®'.replace('®','anything'); 
1

使用此語法...

string.replace(/\xCC/g,''); 

其中「CC」是你想要替換字符的十六進制字符代碼。在這個例子中,我用空字符串''替換。

專門針對這個問題中列出的字符:

string.replace(/[\xAE\xFC]/g,''); 
+0

在控制檯的此頁面上運行此操作不會返回預期的結果。 – 2010-12-03 16:33:29

+0

@Mike用哪個字符代碼? – 2010-12-03 16:38:58

+1

@El,啊!全局標誌後面有一個額外的斜線。這就是爲什麼。 – 2010-12-03 16:44:28

5

當然是!

運行這Firebug控制檯

"®ü".replace(/[®ü]/g,"replaced") 

返回

「replacedreplaced」

你也可以做

"®ü".replace(/[\xAE\xFC]/g,"Wohoo! "); 

返回

"Wohoo! Wohoo! " 

一個好的十六進制符號查找頁面可以在http://www.ascii.cl/htmlcodes.htm


找到此頁上運行這個jQuery

$(".post-text").text().replace(/®/g," ******** ") 

回報

" is it possible to translate special characters like ******** , ü etc with javascript 
String replace function? Use this syntax... string.replace(/\xCC/g/,''); Where 'CC' is 
the hex character code for the char you are wanting to replace. In this example I am 
replacing with empty string ''. yes, and is as simple as can be: ' ******** '.replace(' 
******** ','anything'); Sure is! Running this in the Firebug console " ******** ü". 
replace(/[ ******** ü]/g,"replaced") returned replacedreplaced " 
0

(是的,我知道這個問題已經過時了,但當我在尋找特定的東西時,它仍然出現在Google的高位,所以評論/回答可能對某些人有用):

以前的海報告訴過你如何替換單個字符。我想補充一點,這通常不是一個好主意(當然也有例外),因爲有太多可能的「特殊字符」,你必須考慮。你最終會添加越來越多的替代品,你仍然會錯過一些。

查找其中一個內置函數來執行此操作通常更容易和更安全,這將需要所有需要特殊處理的字符。

在你的問題,你不告訴我們你需要它 - 但是我想3年後,這更是爲其他人反正類似的問題:

如果你想傳遞一個字符串作爲一個參數,最好使用encodeURIComponent函數。也請看When are you supposed to use escape instead of encodeURI/encodeURIComponent?

如果你想編碼其他東西,最好找到一個內置的函數來爲你做。也許http://www.the-art-of-web.com/javascript/escape/http://shebang.brandonmintern.com/foolproof-html-escaping-in-javascript/(有點繁瑣,但隨着事情你應該做好解釋)將幫助

-1

使用此JavaScript語句從字符串

var a1 = $('#txt').val().replace(/[^\x30-\x39\x41-\x5A\x61-\x7A\x20\x26\x28\x29\x2C\x27\x22\x2E\x2F\x26\x40\x5C\x7C\x3A\x2D]/g, ''); 

上面的語句代替所有的特殊字符將取代其他比設定0-9A-ZA-Z &()「,」 ./ & @ \ |: - 有沒有即刪除任何控制字符等

反正@阿爾貝託 - Zaccagni爵士希望你不會否定這次我反對我投票:)