我正在尝试对上传文件中的字符串中的 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,"£") );
});
return text;
}
关于javascript - jQuery 将 "£"替换为 "£"UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36062105/