js用正则表达式删除指定属性
有一段html代码,<divstyle="a:a;b:b;c:c;"width="10%"height="dd"></div>1.用正则表达式删除style属性里面的任一...
有一段html代码,<div style="a:a; b:b; c:c;" width="10%" height="dd"></div>
1. 用正则表达式删除style属性里面的任一键值对,改怎么写?
替换后想达到的效果:<div style="a:a;" width="10%" height="dd"></div>
用正则表达式删除指定属性如width、height属性和值,该怎么写?
替换后想达到的效果:<div style="a:a; b:b; c:c;"></div>
********************我描述清除点*************************
str='<div style="a:a; b:b; c:c;" width="10%" height="dd"></div>';
求正则表达式删除width属性及值。
删除后效果:str='<div style="a:a; b:b; c:c;" height="dd"></div>'
求正则表达式删除style属性中的键值对b和c。
删除后效果:str='<div style="a:a;" width="10%" height="dd"></div>' 展开
1. 用正则表达式删除style属性里面的任一键值对,改怎么写?
替换后想达到的效果:<div style="a:a;" width="10%" height="dd"></div>
用正则表达式删除指定属性如width、height属性和值,该怎么写?
替换后想达到的效果:<div style="a:a; b:b; c:c;"></div>
********************我描述清除点*************************
str='<div style="a:a; b:b; c:c;" width="10%" height="dd"></div>';
求正则表达式删除width属性及值。
删除后效果:str='<div style="a:a; b:b; c:c;" height="dd"></div>'
求正则表达式删除style属性中的键值对b和c。
删除后效果:str='<div style="a:a;" width="10%" height="dd"></div>' 展开
2个回答
展开全部
var source = '<div style="a:a; b:b; c:c;" width="10%" height="dd"></div>';
// 删除width属性及值。
console.log(source.replace(/width=".*?"/,''));
//删除style属性中的键值对b和c
console.log(source.replace(/(style=")(.*?)(")/,function(m,g1,g2,g3){
return g1 + g2.replace(/\s?(.*?):(.*?);/g,function(m,g1,g2){
// 删除b属性和c属性 要改成其他属性可以在这里控制
if(/^(b|c)$/.test(g1))
return '';
return m;
}) + g3;
}));
追问
你好,刚测试了,有2种情况没处理到,能麻烦你在帮我修改下吗?我已经追加悬赏了,等会改好采纳我再追加。麻烦你了。麻烦大神帮忙修改下,清除时也能包含上面两种情况,万分感谢!
var source = '<div style="a:a" width=10% height="dd"></div>';
当a:a后面没有;号而是“,该键值对不能清除;
当width属性的值没有引号,后面为空格或者>时,值无法清除;
追答
var source = '<div style="a:a; b:b; c:c" width=10% height="dd"></div>';
//删除width属性及值。
console.log(source.replace(/width=".*?"|width=.*?(?=\s|>)/,''));
//删除style属性中的键值对b和c
console.log(source.replace(/(style=)(".*?")/,function(m,g1,g2){
return g1 + ['"',g2.replace(/(?:;|")\s*(.*?):(.*?)(?=;|")/g,function(m,g1,g2){
// 删除b属性和c属性 要改成其他属性可以在这里控制
if(/^(a|b)$/.test(g1))
return '';
return [g1,':',g2,';'].join('');
}).replace(/;*?"?$/,''),'"'].join('');
}));
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询