第一步 将非p br img a标签去掉
str = str.replace(/<(?!p|br|img|a(?=[\s>])|/p|/a)[^>]*>/ig,"");
第二步 标签合法性修改
str = str.replace(/<(p|img)[^>]*>/,"<$1>");
str = str.replace(/<(?!p|br|img|a(?=[\s>])|/p|/a)[^>]*>/ig,"");
第二步 标签合法性修改
str = str.replace(/<(p|img)[^>]*>/,"<$1>");
var re = /<img[^>]*?(?:(?:(src\s*=\s*["']?[^"'\s>]*["']?)|(alt\s*=\s*["']?[^"'\s>]*["']?)|(width\s*=\s*["']?[^"'\s>]*["']?)|(height\s*=\s*["']?[^"'\s>]*["']?)|)[^>]*?)*>/ig;
str = str.replace(re,"<img $1 $2 $3 $4>");
var re = /<a(?=[\s>])[^>]*?(?:(?:(href\s*=\s*["']?[^"'\s>]*["']?)|(target\s*=\s*["']?[^"'\s>]*["']?)|)[^>]*?)*>/ig;
str = str.replace(re,"<a $1 $2>");
/<标签名(?=[\s>])[^>]*?(?:(?:******)[^>]*?)*>/ig;
******部分:
(属性1\s*=\s*["']?[^"'\s>]*["']?)|(属性2\s*=\s*["']?[^"'\s>]*["']?)|(属性3\s*=\s*["']?[^"'\s>]*["']?)|用程序生成很容易.具体你自己写了
replace的话一定要按照属性的数目来写4个属性<xxx $1 $2 $3 $4>.3个属性<xxx $1 $2 $3>.至于实际标签有几个合法属性,他就会取出几个属性.没有的属性也不会出错
我自己已经写了一下,是在用php在服务器端处理的,因为php里的的正则感觉好象比javascript的强大一些。
有空再和各位就这个问题继续探讨。谢谢大家的回复。