2012-07-27 32 views
0

從一個字符串,除去多餘的或特殊字符我有一個​​功能,除去多餘的或特殊字符:遇到問題在使用javascript

function escapeHtml(unsafe) { 
return unsafe 
    .replace(/\r?\n|\r/g, "") 
    .replace(/(\r\n|\n|\r)/gm," ") 
    .replace(/\s+/g," ") 
    .replace(/&/g, "&") 
    .replace(/</g, "&lt;") 
    .replace(/>/g, "&gt;") 
    .replace(/"/g, "&quot;") 
    .replace(/'/g, "&#039;") 
    .replace(/!/g, ""); 
    } 

雖然我稱它和我的這部分代碼看起來像:

$(".product_json", data).each(function(){ 
    var thisH = $(this).html(); 
    var myNewString = eval('('+ thisH +')'); 
    var toBeEscaped = myNewString.item_description; 
    var escapedString = escapeHtml(toBeEscaped); 
    myNewString.item_description = escapedString; 
    myNewString = JSON.stringify(myNewString); 
     console.log(myNewString); 
//product_json.push(jQuery.parseJSON(myNewString)); 
}); 

但一些它在控制檯怎麼說的:SyntaxError: unterminated string literal在這個領域

數據看起來像

VINOVO - Lotti TERRENO Hobbystico - Campestre!!! <br /> 
+0

代碼很好,所以這是導致問題的數據。你能提供導致錯誤的示例數據,或者更好的顯示它的jsfiddle嗎? – Archer 2012-07-27 16:37:44

+0

哪一行產生該錯誤? – Trott 2012-07-27 16:46:00

+0

@Trott this one:var myNewString = eval('('+ thisH +')'); – user1433900 2012-07-27 16:47:58

回答

1

你在這一行分配一個值thisH

var thisH = $(this).html(); 

然後通過eval()運行它在這條線(用括號括起):

var myNewString = eval('('+ thisH +')'); 

使用調試器來檢查當SyntaxError被觸發時,值爲thisH。用圓括號括起來的JavaScript有效嗎?如果沒有,那是你的問題。

+0

這是網址:http ://diventarepartner.unicaimmobili.com/proposte-immobiliari/risultato-ricerca-immobili – user1433900 2012-07-27 16:56:38

+0

在eval和有問題的數據看起來像這樣:console.log(thisH):{「item_id」:「4271054」,「foto_principale」:「 {tag_foto principale_value}「,」item_localita「:」「,」item_provincia「:」TO「,」item_tipologia「:」Altro「,」item_mq「:」400「,」item_contratto「:」vendita「,」item_prezzo「 30000「,」item_locali「:」1「,」item_zona「:」mt 500 dal centro「,」item_strada「:」via「,​​」item_indirizzo「:」「,」item_civico「:」「,」item_logoagenzia「資源/ loghi/medium/102.gif「,」item_description「:」VINOVO - Lotti TERRENO Hobbystico - Campestre !!! A mt。500 dal centro paese,adiacente a zona res ..「} – user1433900 2012-07-27 17:00:31

+0

請看Campestre !!! 它有某種換行符 – user1433900 2012-07-27 17:01:13