将Unicode转义序列转换为符号,并转储到dom节点

Converting Unicode Escape Sequence to Symbol, and dumping to dom node

本文关键字:转储 dom 节点 符号 Unicode 转义序列 转换      更新时间:2023-09-26

浏览器:FF Latest/Chrome Latest
jQuery: 1。x边缘

一个ajax请求产生这个响应(作为纯文本发送,单行,有效的JSON(由Gson生成),由jQuery作为纯文本处理)。

{
  "fromSymbol": "''u04b0",
  "toCurrency": "AUD",
  "toSymbol": "''u0024",
  "convFactorPrecise": 0.171346,
  "amount": 38020.0,
  "convertedAmountPrecise": 6514.57,
  "convertedAmountFormatted": "6,514.57"
}

(这里格式化为方便阅读,但它是单行,缩小)。

然后使用以下行将纯文本转换为对象文字:

var currObj = $.parseJSON($.trim(thatStringUpThere));

问题是,currObj。toSymbol现在的字面意思是''u0024',而不是'$'。

  • 考虑我不能改变响应类型和处理json
  • 在jQuery的成功方法
  • 中,我只有一个普通字符串可以使用

Q: 我如何将$转储到dom节点?

(目前,jquery的。html()和。text()一直将''u0024'转储到dom,而不是$符号)。

谢谢。

简单解决方案:

unescape(JSON.parse($.trim(thatStringUpThere)));

更优雅的解决方案:

var r = /''u(['d'w]{4})/gi; 
x = unescape (x.replace(r, function (match, grp) { 
  return String.fromCharCode(parseInt(grp, 16)); 
} ));