//加强替换主要是考虑多个br的问题 function doRepAdvance(s){ var str=s.replace(/<p><br type="_moz">\s*?<\/p>/ig,""); str=str.replace(/<p>\s*<br type="_moz">\s*<\/p>/ig, ""); str=str.replace(/<p>\s*?<br\s?\/?>\s*?<\/p>/ig, ""); str=str.replace(/<p>(\s|\ \;| | |\xc2\xa0)*<\/p>/ig, ""); str=str.replace(/<p>\s*?<\/p>/ig,""); str=str.replace(/<p> <\/p>/ig,""); str=str.replace(/<br type="_moz">\n <\/p>/ig, "</p>"); str=str.replace(/<br type="_moz">\s*?<\/p>/ig, "</p>"); str=str.replace(/<br\s?\/?>\s*?<\/p>/ig, "</p>"); str=str.replace(/<br \/>\n <\/p>/ig, "</p>"); str=str.replace(/<br>\n <\/p>/ig, "</p>"); //多个br str=str.replace(/(<br type="_moz">\s*)+<\/p>/ig, "</p>"); str=str.replace(/(<br\s?\/?>\s*)+<\/p>/ig, "</p>"); //空标签 str=str.replace(/<p style=["'].[^<>]*["']>/ig, "<p>"); str=str.replace(/<span>/ig, "<span>"); //没有style的span去掉 str=str.replace(/<span\s*?(?!:style)>(.[^<>]*)<\/span>/ig,"$1"); str=str.replace(/<([a-z]+?)(?:\s+?[^>]*)?>(\s| )*?<\/\1>/ig, ""); //str=str.replace(/<([a-z]+?)(?:\s+?[^>]*)?>\s*?<\/\1>/ig, ""); return str; }
上面都是一些好东西,具体的自己研究吧。