当前位置:  开发笔记 > 后端 > 正文

正则表达式删除HTML标记的问题

如何解决《正则表达式删除HTML标记的问题》经验,为你挑选了1个好方法。

在我的Ruby应用程序中,我使用以下方法和正则表达式从字符串中删除所有HTML标记:

str.gsub(/<\/?[^>]*>/,"")

这个正则表达式完成了我所期待的所有内容,除了它导致所有引号转换为 所有单引号都要更改为 .

将杂乱的代码转换回正确的字符时,我错过了哪些显而易见的事情?

编辑:无论有没有正则表达式都会出现问题,所以很明显我的问题与它无关.我现在的问题是如何处理这种格式错误并纠正它.谢谢!



1> vladr..:

执行正则表达式替换后使用CGI :: unescapeHTML:

CGI::unescapeHTML(str.gsub(/<\/?[^>]*>/,""))

见http://www.ruby-doc.org/core/classes/CGI.html#M000547

在上面的代码段中,gsub删除了所有HTML标记.然后,unescapeHTML()将所有HTML实体(例如<,“)恢复为其实际字符(<,引号等)

关于此页面上的另一篇文章,请注意您永远不会传递HTML等

2 + 3 < 6

(这是无效的HTML); 你会收到的是:

2 + 3 < 6

对gsub的调用会将上述内容转换为:

2 + 3 < 6

而unescapeHTML将完成这项工作:

2 + 3 < 6

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有