正则匹配删除html标签属性

826 阅读1分钟

例子

const temp = "<div style=\"width: 20px; height: 20px;\" align=\"left\">***</div>"

目标

标签的属性组成是

  • 属性名 = 属性值(包含有引号没引号的)
  • 属性名不包含=(等于号)
  • 属性名和等于号之间允许存在多个空格,等于号和属性值之间允许存在多个空格
  • 属性值只能是0个或者1个

组成

const reg = /\s*[^=\s+]+\s*=\s*([^=>]+)?(?=(\s+|>))/g

  • \s*  表示匹配的前边是若干空白字符
  • [^=\s+]+\s*=  表示匹配的属性名+若干空白字符+等号
  • \s*([^=>]+)? 表示匹配的属性值,且是非贪婪的
  • (?=(\s+|>)) 是正向预查,表示匹配的后边必须是若干空白字符或者右箭头符

使用

console.log(temp.replace(reg,""));