第一步错误代码:
<span style="color:red;font-family:" serif",tahoma,verdana,helvetica;font-size:12px;font-style:normal;font-weight:400;text-decoration:none;"="" sans="">XXXX</span>
一直以为是多个双引号引起的bug。最终发现是font-family后面多了个空格导致的。
第二步找到wxParse.js文件,把style后有空格的去掉
var arr1 = data.split('style=')
var ping = arr1[0] + "style=" + arr1[1].replace(/\s/g, "") ;
发现这个问题并不可行,所以重新编写了,请直接参考第三步和第四步
第三步找到wxParse.js,正则找到style属性 去掉里面的空格
var reg = /style="[^=>]*"([(\s+\w+=)|>])/g
var abc = data.replace(reg,function(a){
a = a.replace(/\s+/g,'')
return a
})
transData = HtmlToJson.html2json(abc, bindName);
第四步htmlparser.js里面的startTag的正则改掉
原本的正则
var startTag =/^<([-A-Za-z0-9_]+)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+
/^<([-A-Za-z0-9_]+)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.])?)*)\s*(\/?)>/
改完后正则
var startTag = /^<([-A-Za-z0-9_]+)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/
把有关"="号的错误代码限制去掉
第五步完美格式化出来了
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。