如何在 JavaScript 中从字符串中去除 HTML?
cleanText = strInputCode.replace(/<\/?[^>]+(>|$)/g, "");
蒸馏自这个网站(web.archive) https://web.archive.org/web/http://javascript.internet.com/snippets/remove-html-tags.html.
这个正则表达式寻找<
,一个可选的斜杠/
, 一个或多个非>
,那么要么>
or $
(行尾)
例子:
'<div>Hello</div>' ==> 'Hello'
^^^^^ ^^^^^^
'Unterminated Tag <b' ==> 'Unterminated Tag '
^^
但它并不是防弹的:
'If you are < 13 you cannot register' ==> 'If you are '
^^^^^^^^^^^^^^^^^^^^^^^^
'<div data="score > 42">Hello</div>' ==> ' 42">Hello'
^^^^^^^^^^^^^^^^^^ ^^^^^^
如果有人试图破坏你的应用程序,这个正则表达式不会保护你。仅当您已经知道输入的格式时才应使用它。和其他的一样知识渊博且头脑清醒 https://stackoverflow.com/a/1732454人们指出,要安全地剥离标签,您must使用解析器。
如果您无法访问像 DOM 这样方便的解析器,并且您不能相信您的输入格式正确,那么您最好使用像清理 html https://www.npmjs.com/package/sanitize-html,并且还有其他消毒剂可供选择 https://www.npmjs.com/search?q=sanitize%20html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)