问题:
把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.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
为了保留拓展性,大概思路可以这样。