首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >转义html,除非在[code] [/code]标记中

转义html,除非在[code] [/code]标记中
EN

Stack Overflow用户
提问于 2018-01-28 21:42:50
回答 1查看 258关注 0票数 0

我想解析一个字符串并输出它,执行以下操作:

  • 转义html -例如:
    • return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');

  • 除了代码标记中的文本
  • 处理字符串中的多个代码标记。

如何识别标签内/外的字符串?我不需要存储字符串片段,只需要处理它们并输出。

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-28 23:09:49

下面我编写了一个示例,在[code][/code]标记处拆分字符串,然后转义所有不在这些标记之间的html,然后使用join命令将该数组放回字符串中。

请注意,如果缺少一个[code]标记,程序将有意想不到的行为。

代码语言:javascript
运行
复制
string = "hello world<b>this is mohammad's amazing code:</b> [code]<br>mohammad<br>is<br>amazing[/code]<br>"
tempString = string.split(/(\[code\])(.+)(\[\/code\])/g)

var isCode = 0
for (var i = 0; i < tempString.length; ++i) {
  if (tempString[i].match(/(\[code\])/g)) {
    //code begins here
    isCode = 1
  } else if (tempString[i].match(/(\[\/code\])/g)) {
    //code ends here
    isCode = 0
  }
  if (isCode == 0) {
    tempString[i]=tempString[i].replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
  }
}
string = tempString.join("")
alert(string)

这个演示也可以在小提琴上播放。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48491640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档