javascript - 使用 Javascript 将所有 regmarks 包装在 <sup> 标签中,除非它们已经有 <sup> 标签

标签 javascript jquery

<分区>

提前致谢。

我正在使用

  $(document).ready(function() {
           $("body").html(
    $("body").html().replace(/&reg;/gi, '<sup>&reg;</sup>').replace(/®/gi, '<sup>&reg;</sup>')
   );
        });

在regmarks 周围添加一个下标,但是如果® 标记已经有 标签,它会添加两次上标。如果它已经存在,谁能帮我添加一个停止检查?

更新:: 我最终使用了这段代码,因为下面的答案干扰了我其余的 javascript。

 $(document).ready(function() {
   $("p,h1,h2,h3,h4, td").each(function(){
     $(this).html($(this).html().replace(/&reg;/gi, '<sup>&reg;</sup>').replace(/®/gi, '<sup>&reg;       
      </sup>').replace('<sup><sup>', '<sup>').replace('</sup></sup>', '</sup>'));
   });
 });

最佳答案

你想要这个:

$("body").html(
  $("body").html()
    .replace(/((?!<sup>\s*))&reg;((?!\s*<\/sup>))/gi, '<sup>&reg;</sup>') // wrap &reg; if not wrapped yet
    .replace(/((?!<sup>\s*))®((?!\s*<\/sup>))/gi, '<sup>&reg;</sup>') // wrap ® if not wrapped yet
);

解释:

您可以在正则表达式本身中为包装标签构建测试,而不是按照其他人的建议并在事后删除重复项。

例如,此正则表达式仅在未被 SUP 包围时查找字符(实体)标签:

/((?!<sup>\s*))®((?!\s*<\/sup>))/gi/((?!<sup>\s*))&reg;((?!\s*<\/sup>))/gi

JsFiddle 演示:http://jsfiddle.net/co3sy5zo/

可运行代码段:(使用原生 javascript 而不是 jQuery)

document.body.innerHTML = 
  document.body.innerHTML
    .replace(/((?!<sup>\s*))&reg;((?!\s*<\/sup>))/gi, '<sup>&reg;</sup>')
    .replace(/((?!<sup>\s*))®((?!\s*<\/sup>))/gi, '<sup>&reg;</sup>');
<sup>&reg;</sup>
&reg;
<sup>®</sup>
®
<sup> &reg; </sup>
<sup> ® </sup>
<sup>
   &reg; 
</sup>
<sup> ® 
</sup>
"Buy more Emo&reg; Jeans!"

关于javascript - 使用 Javascript 将所有 regmarks 包装在 <sup> 标签中,除非它们已经有 <sup> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27116372/

相关文章:

javascript - 为什么我的代码适用于 jsfiddle 而不是我的 HTML 文件

javascript - 动态元素附加到另一个 2 个动态元素中

jquery - 按 a.text 值排序

javascript - 使用 Content-Disposition :attachment 在浏览器中重置等待光标

javascript - Shelljs exec() 不执行变量

javascript - Angularjs导航到从工厂/服务的路线

php - 当使用 cron 运行 ajax 时,它不执行我需要保存数据的 PHP 文件

javascript - 我可以获得调用该函数的按钮,但不能从搜索触发的 if 语句中调用,但可以调用任何其他函数就好了

javascript - 将变量注入(inject)回调函数作用域

jQuery 数据表 Twitter/facebook 风格分页