问题:
把HTML标签中的src style controls属性以外的属性全部替换成空,
**并且**
style里面的属性,只留下 background 和 color 两个style属性 ,其他也全部替换成空,小弟实在不会,先谢谢### 问题描述
问题出现的环境背景及自己尝试过哪些方法
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
问题:
把HTML标签中的src style controls属性以外的属性全部替换成空,
**并且**
style里面的属性,只留下 background 和 color 两个style属性 ,其他也全部替换成空,小弟实在不会,先谢谢### 问题描述
// 请把代码文本粘贴到下方(请勿用图片代替代码)
//过滤属性
//js
var reg = '/<([A-Za-z]+)[^>]+((class|style|controls)=".*?")([^>]+)?>/g';
str.replace(reg,'<$1 $2>');
//php
$reg = '/<([A-Za-z]+)[^>]+((class|style|controls)=".*?")([^>]+)?>/';
echo htmlspecialchars((preg_replace_callback($reg, function ($matches) {
return '<' . $matches[1] . ' ' . $matches[2] . '>';
}, $str)));
过滤style
var reg = /style="(?:((?:background|color)[^;"]+;)+)?((?:(?!background|color)[^;"]+;)+)?(?:((?:background|color)[^;"]+;)+)?((?:(?!background|color)[^;"]+;)+)?/g;
str.replace(reg,function(){
return 'style="'+(arguments[1] || '')+(arguments[3] || '');
});
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
5 回答832 阅读
3 回答1.7k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答868 阅读✓ 已解决
为了保留拓展性,大概思路可以这样。