2011-10-21 72 views
1

如何過濾控制字符在JavaScript

JSON.parse('{"text": "~#"}'); 

會給synatax錯誤,因爲之間〜和#0x0B中。你看不到它,但它確實存在。

如何避免這種情況?

+0

根據JSON規範對這些字符進行編碼。 – alex

+0

@alex我無法控制服務器響應 – wukong

回答

1

如果您無法獲取服務器上編碼的數據,則有一種方法是在嘗試解碼之前將其預處理爲JSON。你可能例如,應用正則表達式,像這樣:

var data = JSON.parse('{"text": "~#"}'.replace(/([^\d\w"':,{}~#]|\s)+/g, ' ')); 

Obviosly,你要起草的正則表達式時遵循spec真正密切。

+0

已編輯使表達式允許空白。但是,這會增加可能不需要的空間。 – fncomp