diff --git a/_src/core/htmlparser.js b/_src/core/htmlparser.js index 3d242fc16..375968111 100644 --- a/_src/core/htmlparser.js +++ b/_src/core/htmlparser.js @@ -26,7 +26,10 @@ var htmlparser = UE.htmlparser = function (htmlstr,ignoreBlank) { //todo 原来的方式 [^"'<>\/] 有\/就不能配对上 这样的标签了 //先去掉了,加上的原因忘了,这里先记录 - var re_tag = /<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)-->)|(?:([^\s\/<>]+)\s*((?:(?:"[^"]*")|(?:'[^']*')|[^"'<>])*)\/?>))/g, + //var re_tag = /<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)-->)|(?:([^\s\/<>]+)\s*((?:(?:"[^"]*")|(?:'[^']*')|[^"'<>])*)\/?>))/g, + //以上的正则表达式无法匹配:

+ //修改为如下正则表达式: + var re_tag = /<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)-->)|(?:([^\/\s>]+)((?:\s+[\w\-:.]+(?:\s*=\s*?(?:(?:"[^"]*")|(?:'[^']*')|[^\s"'\/>]+))?)*)[\S\s]*?(\/?)>))/g, re_attr = /([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g; //ie下取得的html可能会有\n存在,要去掉,在处理replace(/[\t\r\n]*/g,'');代码高量的\n不能去除 @@ -194,4 +197,4 @@ var htmlparser = UE.htmlparser = function (htmlstr,ignoreBlank) { text(currentParent, htmlstr.slice(nextIndex)); } return root; -}; \ No newline at end of file +};