2014-04-03 39 views
1

在IE10,來解析其含有標籤JSON字符串字符它需要是Unicode的Javascript與HTML的unicode替換標籤炭爲JSON解析

例如:

jsonString="{\"mynameproperty\":\"Chetan Shettigar\"}" 

上述字符串解析失敗在IE10因爲有一個選項卡字符"Chetan Shettiga"

可接受的字符字符串Chetan	Shettigar

我要尋找一個解決方案它可以替換tab到各自的html unicode。 可能是正則表達式可以解決這個問題,但是有沒有其他簡單的方法?

+2

應該在json中使用'\ t'作爲製表符。 &#9是html編碼的,與json沒有任何關係。 –

+0

JavaScript字符串文字和JSON字符串文字都可以使用普通標籤正常工作,無需轉義它們。你會得到什麼錯誤? – Bergi

+0

我曾嘗試使用「Chetan \ tShettigar」,它仍然失敗。 – Chetan

回答

1

要使用HTML字符代碼	更換所有選項卡,你可以使用replace()功能,像這樣:

jsonString="{\"mynameproperty\":\"Chetan Shettigar\"}".replace(/\t/g, '	'); 

儘管在評論中提到,你應該使用\t而不是HTML字符代碼,像這樣:

jsonString="{\"mynameproperty\":\"Chetan Shettigar\"}".replace(/\t/g, '\\t'); 
+0

謝謝你的回答。在IE10中,\ t不能使用。試了一下,並得到無效的字符錯誤消息。 – Chetan

0

試試這個:

var jsonString="{\"mynameproperty\":\"Chetan Shettigar\"}"; 
jsonString = jsonString.replace(/\t/g, "\\t"); 
var obj = JSON.parse(jsonString); 
document.body.innerHTML = obj.mynameproperty; 

DEMO in JSFiddle