使用jquery在<sup>®</sup>中的HTML文档中包装所有®字符

时间:2014-04-29 13:43:49

标签: javascript jquery encoding superscript

我的文档中包含许多®字符。我需要将它们全部渲染为上标。我正在尝试这个,但没有运气:

$('body:contains("®")').contents().each(function () {
    if (this.nodeType == 1) { //Look for only element Nodes
        $(this).html(function (_, oldValue) {
            return oldValue.replace(/®/g, "<sup>$&</sup>")
        })
    }
});

3 个答案:

答案 0 :(得分:2)

您可以使用基本替换;

$("body").html($("body").html().replace(/\u00AE/g, "<sup>&reg;</sup>"))

Fiddle

答案 1 :(得分:0)

我不确定这是否具有足够的性能或足够强大,但它似乎在我的有限测试中有效:

$(function () {
    var html = $('body').html();
    html = html.replace(/®/g, "<sup>®</sup>");
    $("body").html(html);
});

JSFiddle:http://jsfiddle.net/zphv6/

基本上将正文的HTML作为字符串抓取,执行正则表达式搜索/替换,并用新字符串替换正文的HTML。

答案 2 :(得分:0)

这取决于角色放置在HTML中的方式,但它可能就像这样简单 -

$("body").children().each(function() {
    $(this).html($(this).html().replace(/\&reg;/g,"<sup>&reg;</sup>"));
});

http://jsfiddle.net/jayblanchard/363qC/