我有一个删除额外或特殊字符的功能:
function escapeHtml(unsafe) {
return unsafe
.replace(/\r?\n|\r/g, "")
.replace(/(\r\n|\n|\r)/gm," ")
.replace(/\s+/g," ")
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'")
.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 :(得分:1)
您在此行中为thisH
分配值:
var thisH = $(this).html();
然后在此行中通过eval()
(括号括起来)运行它:
var myNewString = eval( '('+ thisH +')');
使用调试器在触发SyntaxError时检查thisH
的值。用括号括起来时它是有效的JavaScript吗?如果没有,那就是你的问题。