0

余分な文字や特別な文字を削除する機能があります。

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

1 に答える 1

1

thisHこの行でに値を割り当てます。

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

そして、eval()次の行で(括弧で囲まれて)実行します。

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

デバッガーを使用してthisH、SyntaxErrorがトリガーされたときの値を確認します。括弧で囲まれている場合、それは有効なJavaScriptですか?そうでなければ、それはあなたの問題です。

于 2012-07-27T16:50:47.473 に答える