2013-06-20 100 views
0

我有一個複雜的形式,用戶有一些選擇,也有幾個textareas填寫信息。表單效果很好,數據通過JSON傳遞給我的MVC控制器,並且工作正常。Jquery用戶輸入到JSON

但是用戶是用戶,我發現,一些正在使用),特殊字符,如「£$%&(等等這些都造成如此控制器動作不正確綁定JSON被格式不正確。

SO我的問題是我怎麼能編碼從用戶輸入的文本,使其形成有效的JSON

我收集的數據電流的方法是:。

var TelNo = $("#TelNo"). 
var EmailMessage = $("#EmailMessage").val(); 

感謝

懸崖。

回答

0

這是沒有真正的函數爲JSON轉義字符。

一個函數來做到這將是這樣的

function makeSafe(jsonf){ 
    jsonf= JSON.stringify(jsonf); 
    jsonf = jsonf.replace(/\\n/g, "\\n") 
             .replace(/\\'/g, "\\'") 
             .replace(/\\"/g, "\\"") 
             .replace(/\\&/g, "\\&") 
             .replace(/\\r/g, "\\r") 
             .replace(/\\t/g, "\\t") 
             .replace(/\\b/g, "\\b") 
             .replace(/\\f/g, "\\f"); 
    return jsonf; 
} 

那麼你可以做

EmailMessage = makeSafe(EmailMessage); 

我已經把它添加到我的字符串對象像下面這樣我就可以參考它當過我需要

String.prototype.makeSafe= function() { 
    return this.replace(/\\n/g, "\\n") 
       .replace(/\\'/g, "\\'") 
       .replace(/\\"/g, "\\"") 
       .replace(/\\&/g, "\\&") 
       .replace(/\\r/g, "\\r") 
       .replace(/\\t/g, "\\t") 
       .replace(/\\b/g, "\\b") 
       .replace(/\\f/g, "\\f"); 
}; 
var EmailMessage = $("#EmailMessage").val() 
EmailMessage = EmailMessage.makeSafe(); 
+0

輝煌我剛剛開始了這條賽道,但你有一個完美的解決方案謝謝。 –