我需要一个可以从头到尾删除完整标签的正则表达式。
例如:
对于给定的字符串:
var str = "Hello <script> console.log('script tag') </script> World";
我需要一个输出:
"Hello World" // with full script tag including inner content removed
我非常具体只针对RegEx
解决方案,因此不需要浏览器附加技巧。
如果这根本不可能,请通知。
我尝试了这个及其变体:
inputString.replace( /<\/?[^>]+(>|$)/g, "" );
但这并没有达到我想要的效果,只是删除了标签元素,留下了内部内容。什么RegEx
我应该在表达式中创建组吗?
我不需要解决类似的问题type="text/javascript"
,因为在我收到字符串之前它们已经被过滤了。
没有 jQuery,请。 (我需要将正则表达式存储为我的过滤器对象的属性)。
帮助表示赞赏。
这是纯正则表达式解决方案:
var str = "Hello <script> console.log('script tag') </script> World";
var repl = str.replace(/<([^.]+)>.*?<\/\1>/ig, '');
//=> "Hello World"
假设不存在<
OR >
在开始和结束标签之间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)