Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS:如何使用正则表达式从HTML字符串中删除样式标记及其内容?_Javascript_Regex - Fatal编程技术网

Javascript JS:如何使用正则表达式从HTML字符串中删除样式标记及其内容?

Javascript JS:如何使用正则表达式从HTML字符串中删除样式标记及其内容?,javascript,regex,Javascript,Regex,我需要多次从html字符串中删除样式标记的全部内容。我不能使用DOM解析器 我如何用JavaScript实现这一点? var string=“someHTMLStuff非样式的东西” var s=string.replace(/ var string=“someHTMLStuff非样式的东西” var s=string.replace(/对于那些在2020年登陆这里的人来说,这对我很有效 string.replace(/(<style[\w\W]+style>)/g, "&

我需要多次从html字符串中删除样式标记的全部内容。我不能使用DOM解析器

我如何用JavaScript实现这一点?

var string=“someHTMLStuff非样式的东西”
var s=string.replace(/
var string=“someHTMLStuff非样式的东西”

var s=string.replace(/对于那些在2020年登陆这里的人来说,这对我很有效

string.replace(/(<style[\w\W]+style>)/g, "")
string.replace(/()/g,”)

正如Bergi在OP评论中所暗示的,如果没有更好的选择,这应该被视为最后的手段。RegEx不是处理HTML的最佳方式。

对于那些在2020年登陆这里的人来说,这对我来说是有效的

string.replace(/(<style[\w\W]+style>)/g, "")
string.replace(/()/g,”)

正如Bergi在OP评论中提到的,如果没有更好的选择,这应该被视为最后的手段。正则表达式不是处理HTML的最佳方法。

替换HTML元素(innerHTML)中的所有样式属性:


第1行

第2行

//剧本 let element=document.getElementById('el') element.innerHTML.replace(/style=\“*”/gm,“”)

这将按id el删除元素中的所有元素样式属性。

替换HTML元素(innerHTML)中的所有样式属性:


第1行

第2行

//剧本 let element=document.getElementById('el') element.innerHTML.replace(/style=\“*”/gm,“”)

这将删除元素id el中的所有元素样式属性。

您的用例是什么?为什么不能使用dom解析器?因为我正在获取巨大的html文件,我想在Cheerio中解析它们之前将它们从垃圾中去除,希望它能改善我在Nodejs中的内存消耗问题。我正在构建一个执行大量操作的web刮板一些站点有多达200万个字符的html文件(如我所说,大部分是垃圾文件)。我希望在解析DOM之前对垃圾文件进行条带化可以改善我的内存状况。因此,您已经使用了DOM解析器(cheerio)但是,您的内存消耗有问题吗?那么您应该考虑修改解析器,以便立即删除样式(以及所有您认为是“垃圾”的),而不是将其附加到DOM,而不是用正则表达式来尝试一些东西。(为什么ReGEX!?)你的用例是什么?为什么你不能使用dom解析器?因为我正在获取巨大的html文件,我想在Cheerio中解析它们之前将它们从垃圾中去除,希望它能改善我在Nodejs中的内存消耗问题。我正在构建一个web scraper,它可以并行执行大量http请求,并且一些站点的html文件最多有2个百万字符(主要是垃圾,正如我所说的)。我希望在解析DOM之前先删除垃圾,这样会改善我的内存状况。所以你已经使用了DOM解析器(Relio),但是你的内存消耗有问题吗?那么你应该考虑修改解析器,这样它就可以删除样式(你认为所有其他的东西都是“垃圾”)。不要立即将其附加到DOM中,而不要尝试使用正则表达式(为什么是正则表达式!)不适用于我。是否需要一些调整,因为字符串会断为多行?@sheff2k1 javascript正则表达式不使用引号,更新我的应答不适用于我。是否需要一些调整,因为字符串会断为多行?@sheff2k1 javascript正则表达式不使用引号,更新了我的应答C注意这一点。如果您有多个
标记,它将清除第一个和最后一个标记之间的任何内容。请小心。如果您有多个
标记,它将清除第一个和最后一个标记之间的任何内容。