javascript - jQuery 将 "£"替换为 "£"UTF-8

标签 javascript jquery html-entities html-encode

我正在尝试对上传文件中的字符串中的 HTML 特殊字符进行编码。它适用于除“£”符号以外的所有内容,老实说,我不知道为什么

我正在使用以下元素从元素中获取文本:

var outputText = $("#displayAreaHidden").html();

outputText = encodeText(outputText);

然后我尝试使用大型特殊字符对象及其 HTML 代码替换来查找和替换

function encodeText(text) {
    var encodeTable = {
        //Huge object here
    };


    $.each(encodeTable, function(key, value) {
        if(text.indexOf(key) > -1) {
            text = text.replace(key, value);
        }
    })

    return text;
}

在“£”符号的情况下,对象具有:

"£" : "£"

这不会被拾取,因此不会发生替换。我已经尝试在原始 HTML 文件和对象本身中传递 ££ 但它仍然没有被拾取。

非常感谢任何帮助。

编辑

只需更新我当前的代码:

(HTML 是由上传的 HTML 文件“制作”的)

JS

function processData() {
    var data = $.parseHTML(fr.result);

    $("#displayAreaHidden").html(data);

    var outputText = $("#displayAreaHidden").html();

    $("#displayArea").text(encodeText(outputText));

}

function encodeText(text) {
  var text = escape(text);
  var encodeTable = {
        "£" : "£"
    };

  $.each(encodeTable, function(key, value) {
      text = text.replace(escape(key), escape(value));
  })

  return unescape(text);
}

HTML

<textarea id="displayArea"></textarea>

<div id="displayAreaHidden"></div>

最佳答案

您可以获得 html 的所有文本并使用此正则表达式:

var outputText = $("body");

outputText = encodeText(outputText);

function encodeText(text) {

      var text = $(text).children().each(function () {
          $(this).html( $(this).html().replace(/£/g,"&pound;") );
      });

    return text;
}

关于javascript - jQuery 将 "£"替换为 "&pound;"UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36062105/

相关文章:

jquery - 如何在页面加载前加载 load jquery

php - 禁用除 <a> 之外的所有标签

java - 使用 HTML 实体转义字符串时,如果我使用 UTF-8,是否可以安全地跳过 Unicode 127 以上的编码字符?

html - 位置符号的 HTML 实体是什么

javascript - PHP - 向所有客户端发送异步广播消息

javascript - 两个 div 同时滚动,直到一个到达底部

javascript - 如何访问使用 JustGage 创建的新对象的值参数?

javascript - HTML5 横幅动画延迟

jquery - <ul> 中的 <li> 元素数量是否有限制?

javascript - jQuery/JavaScript 干净的字符串,因此只有单词存在