可以像这样用正则表达式分割html字符串
var mystring="<p style='display:inline'>hello world</p>!!';
并获得像这样的数组?
[<p style='display:inline'>,hello world,</p>,!!]
更新:我使用以下正则表达式
mystring.split(/(<\/?\w+(?:(?:\s+\w+(?:\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>)/gim);
谢谢
答案 0 :(得分:0)
我毫不犹豫地发布这个答案,因为我认为这是一个坏主意。这不是最持久的解决方案,使用正则表达式解析html并不是一个好主意。你应该使用DOM。这是:
mystring.replace(/>/g,'>\x1d').split(/(?=<)|\x1d/)
基本上,将所有>
替换为>{group separator}
,然后在<
上进行前瞻分割并在{group separator}
上进行分割。你得到你想要的东西,但是如果你有&lt;或者&gt;或者你的html里面的组分隔符未转义。