一个网友问:

<p class="a" style="font-size: 12pt;  font-family: ""; color: red;">a</p>

如何替换成:

<p class="a" >a</p>

以为So easy,写个正则匹配一下就OK了,

/style="[^"]*?"/g

结果生成结果如下:

<p class="a" "; color: red;">a</p>

原来忽略了style="中间有双引号"

琢磨后,

改进了正则表达式:

var a=`<p class="a" style="font-size: 12pt;  font-family: ""; color: red;">a</p>`

var reg4 = /style="[^=]*?"([(\s+\w+=)|>])/g

a.replace(reg4,'$1')

最终生成结果:

<p class="a" >a</p>

"和>之间还多了一个空格。基本上达到了要求。

原理,style后的内容非贪婪匹配,以一个=号或是>号结尾,后面那部分要用分组($1)替换回来

20190107,反馈有问题,改进:

 var a=` <span style="font-family: "Times New Roman";" class="abc">`
var reg4 = /style="[^=>]*"([(\s+\w+=)|>])/g
a.replace(reg4,'$1') 

把非贪婪匹配改为了贪婪匹配。

正则替换HTML里的style属性的更多相关文章

  1. dede文章调用时过滤调 body里面的style属性和值

    dede 发布文章的时候会在里面的标签中添加一些style 属性,现在改网站想去掉这些属性和里面的值,因为文章太多所以就用下面的方法 \include\arc.listview.class.php 在 ...

  2. 在v-html中,js 正则表达式清除字符串里的style属性

    项目中遇到这样的需求,后端返回的是字符串,在vue用v-html显示,里面有style样式,要去除style 在v-html中使用filters,和平时的不一样,推荐项目的方法,定义一个全局的过滤方法 ...

  3. JavaScript之Style属性学习

    当CSS使用伪类开始侵入DOM和JavaSCript所控制着的行为层时,DOM和JavaScript也使用他们的一系列样式去控制表现层,这篇随笔主要说的就是利用JavaScript去控制元素的表现形式 ...

  4. CSS用HTML中的style属性替换

    废话不多说上代码: 1.用CSS给文字添加背景色: <html> <head> <style type="text/css"> body {ba ...

  5. php中的正则函数:正则匹配,正则替换,正则分割 所有的操作都不会影响原来的字符串.

    有一个长期的误解, 如果要分组, 必须用 小括号 和 |, 而不能用 中括号 和 |. [ab|AB]表示的不是 匹配 ab或 AB, 而是表示 匹配 a,b, |, A, B 这5个字符中 的任意 ...

  6. js外部样式和style属性的添加移除

    在页面中,往往一个控件的外部样式或者内部样式往往不只一个,而我们只需操作其中一个样式该怎么办呢? 最开始我也不知道该怎么做,就用了最原始的方法,替换原有的样式为新的样式,这样每次都要获取原样式,找通用 ...

  7. php中的正则函数主要有三个-正则匹配,正则替换

    php中变量的声明? 由于php声明变量的时候, 不支持使用 var关键字, 又不能直接写一个变量名字, 孤零零的放在那里, 所以, 在php中声明变量的方式, 同时也是给变量初始化的形式, 即: & ...

  8. PHP函数preg_replace() 正则替换所有符合条件的字符串

    PHP preg_replace() 正则替换,与JavaScript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素. preg_replace (正则表达式 ...

  9. css字体样式(Font Style),属性

    css字体样式(Font Style),属性   css字体样式(Font Style)是网页中不可或缺的样式属性之一,有了字体样式,我们的网页才能变得更加美观,因此字体样式属性也就成为了每一位设计者 ...

随机推荐

  1. Docker环境下的Mysql8 实现主从数据库数据同步方案

    本文记录下通过MySQL Replication在Docker环境下,通过多个容器 实现数据库主从配置. MySQL Replication就不多解释了,简单说就是MySQL非常出色的一个功能,该功能 ...

  2. 阻止事件冒泡传播stopPropagation() 阻止自身默认行为preventdefault()

    stopPropagation       简单理解:子元素的点击事件  不会去触发父元素的点击事件 preventdefault       简单理解:当点击提交按钮时(submit)   阻止对表 ...

  3. 在jsp里面 当鼠标元素触发onmouseover时,旁边出现一个浮动且跟随鼠标的div ,移开消失

    JSP页面 : <label onmouseover="showLongStrlog(window.event, '<list:seqnum></list:seqnu ...

  4. 20165214 2018-2019-2 《网络对抗技术》Exp5 MSF基础应用 Week8

    <网络对抗技术>Exp5 MSF基础应用 Week8 一.实验目标与内容 1.实践内容(3.5分) 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体我 ...

  5. jar包是干什么用的

    1.JAR(Java ARchive)是将一系列文件到单个压缩文件里,就象Zip那样.但是,同Java中其他任何东西一样,JAR文件是跨平台的,所以不必关心涉及具体平台的问题.2.jar包就是别人已经 ...

  6. oracle 表空间不足处理

    linux环境将*.dmp文件导入数据库时,df  -h 发现测试环境虚拟机空间不足,而数据文件xxx.dbf所占空间达到40G左右,果断删除表空间重建在导入. 一.查出存储数据表空间名称 selec ...

  7. task打印执行结果

    使用debug输出task执行的register: - name: check extract session # script: /app/ansiblecfg/XXX/roles/test/tas ...

  8. 宝塔MySQL服务自动停止重启的解决方法

    现象:客户端MYSQL无法链接 提示超过 max_connections 如果重新启动MYSQL或停止MYSQL 及重新启动系统时 需要很长时间 1个小进左右 问题描述 服务器上安装的 MySQL,会 ...

  9. (a ==1 && a== 2 && a==3) 有可能是 true 吗?

    工作之余逛知乎的时候看到一个有意思的讨论,(a ==1 && a== 2 && a==3) 有可能是 true 吗?啊?一个变量同时满足三个条件?扯呢? 当然是我太天真 ...

  10. Linux 驱动——Button驱动4(fasync)异步通知

    button_drv.c驱动文件: #include <linux/module.h>#include <linux/kernel.h>#include <linux/f ...