使用javascript从字符串中删除额外或特殊字符时遇到问题

Having trouble in removing extra or special chars from a string using javascript

本文关键字:特殊字符 遇到 问题 javascript 字符串 删除 使用      更新时间:2024-05-01

我有一个删除额外或特殊字符的函数:

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 />

您在以下行中为thisH赋值:

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

然后通过以下行中的eval()(用括号括起来)运行它:

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

触发SyntaxError时,使用调试器检查thisH的值。用括号括起来的JavaScript是否有效?如果没有,那就是你的问题。