Tomalak..

6

使用正则表达式应该很好:

$('#response').html(function() {

return $(this).text().replace(/\[(\/?\w+)\]/g, "");

});

好处是所有令牌都可以替换,而无需单独命名.

请注意,这为跨站点脚本攻击打开了大门!

如果你想在这个过程中(如转换令牌[b]来)和白名单他们(你肯定要列入白名单他们migitate XSS漏洞),使用回调函数作为替代,就像这样:

$('#response').html(function () {

var map = {

b: "strong",

i: "em",

p: "p"

};

return $(this).text().replace(/\[(\/?)(\w+)\]/g, function ($0, $1, $2) {

if (map.hasOwnProperty($2)) {

return "";

} else {

return $0;

}

});

});

为了使这个jQuery成为答案,这里是如何将所有这些转换为花哨的jQuery插件以供重用:

$.fn.extend({

unphpbb: (function () {

var map = {

b: "strong",

i: "em",

p: "p"

},

tokens = /\[(\/?)(\w+)\]/g,

replacement = function ($0, $1, $2) {

return map.hasOwnProperty($2) ? "" : $0;

},

replaceTokens = function (i, html) {

return html.replace(tokens, replacement);

};

return function () {

return this.html(replaceTokens);

};

})()

});

用作

$("#response").unphpbb();

当然,在服务器上使用bbcode解析器并将正确擦除的HTML发送到客户端是解决此问题的首选方法.在具有上述功能的客户端上执行此操作在各方面都是劣等的.

html自动替换文字,用HTML元素替换文本标记相关推荐

  1. php中怎么替换文字,php里面怎么替换文字

    php里面怎么替换文字2020-07-13 07:15:50 php替换文字的方法:使用[str_replace()]函数用一个字符串替换字符串中的另一些字符即可,语法为[str_replace(fi ...

  2. python docx 替换文字_查找并替换.docx文件中的文本 - Python

    我一直在寻找一种方法来查找和替换docx文件中的文本而运气不佳 . 我已经尝试过docx模块而无法使用它 . 最后,我使用zipfile模块计算了下面描述的方法,并替换了docx存档中的documen ...

  3. Pandas中的元素替换

    # 序列中的元素替换 ser = pd.Series([0, 1, 2, 3, 4, 5]) print(ser.replace(0, 6)) # 单个元素替换 print(ser.replace([ ...

  4. ps 替换文字_Python操作PPT实现自动查找替换

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:多巴胺爱学习 PS:如有需要Python学习资料的小伙伴可以加点击下 ...

  5. 拾壹博客拆解,页面元素替换(二)

    页面元素替换 首先要做的当然是换成自己风格的站名和内容啦. 1.网站配置 跟踪前端代码后发现配置是来自后端接口,想着既然入库了,那应该有对应的管理页面吧,果然找到了,就是-演示账号不允许操作!那么接下 ...

  6. Java POI WORD动态插入/替换文字、插入/替换图片

    注意事项 word需.docx格式,.doc格式不适用此方案. 书签 书签是word里的一种标记元素,poi能很好的读出标签并进行文字替换.图片替换等.此方案利用书签进行操作,同时也更推荐用书签进行w ...

  7. 7.DOM(六)①创建create#插入appendChild(子元素)#替换insert,replace#删除DOM对象节点②复制节点.深复制,浅复制cloneNode⑥取消超链接a默认跳转行为

    目录 一:创建一个新的DOM节点: 1.麻烦的方法 ①document.createElement()创建一个新的元素 ②把元素加入到list里面 ③创建一个文本节点(就是li里面的文字) ④在new ...

  8. LeetCode简单题之将每个元素替换为右侧最大元素

    题目 给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换. 完成所有替换操作后,请你返回这个数组. 示例 1: 输入:arr = [17,18,5,4,6 ...

  9. python 替换字符串中的元素

    python 替换字符串中的元素 def str_replace(old_str,old,new):"""在 old_str 字符串中,把 old 替换成 new:par ...

最新文章

  1. Android学习笔记进阶九之Matrix对称变换
  2. R语言包_rCharts
  3. 汇编语言---冒泡排序
  4. Hadoop伪分布式环境搭建
  5. 基于Nginx的负载均衡
  6. LuoguP3959 宝藏 题解
  7. 云炬Android开发笔记 3-3基础框架可用性验证
  8. mysql 并行 更新_MySQL 并行复制(MTS) 从库更新的记录不存在实际却存在
  9. 关闭Apache的目录浏览功能
  10. java ajax 获取headers_Ajax获取Response头信息
  11. Python 学习笔记(五)杂项
  12. C++ string与vectorfloat类型相互转换之stringstream
  13. plsqldev 乱码
  14. 计算机毕业设计之java+ssm基于web的考研助手网站
  15. 设计心理学之色彩心理学和马斯洛需求层次理论
  16. [Aria2][Linux]宝塔面板Aria2安装和配置教程
  17. Element plus:将组件中英文转为中文
  18. Cocos2d-x制作跨平台太空射击游戏
  19. 服务器IIS6/IIS7、Nginx、Apache屏蔽垃圾爬虫UA禁止垃圾爬虫,屏蔽指定UA
  20. ndo入mysql的一些优化

热门文章

  1. 游戏地图编辑器之地图存储格式
  2. 疯狂Python讲义学习日志01——变量和简单类型
  3. PHP中的类与对象详细解读
  4. 拓文是什么_外貌至上主义男主角是谁 拓文帅和kris到底是什么关系
  5. 实验二——任务二体重测量计
  6. 记一次 Centos7 安装部署 gogs-v0.12.1
  7. 高通SDM845平台Sensor学习——4.SLPI(SAM Sensor)--
  8. error link2005
  9. python画波浪线_matplotlib中的锯齿形或波浪线
  10. Linux中安装docker版的ES