有一個標籤類型的字符串正則表達式我要取代之間的所有字符串,前後<span style="[^"]+">.*?</span>
標籤可能在字符串span標籤(沒有其他HTML標記,只是簡單的文本) 我像這樣有正則表達式。用於替換在Javascript中
var span_re = /^(.+)(?=<span)|(?=<\/span>)(.+)(?=<span)|(?=<\/span>)(.+)$/g;
str = str.replace(span_re, '<span>$1</span>');
該字符串
'foo<span style="text-decoration:underline;">bar</span>baz'
我
'<span>foo</span><span style="text-decoration:underline;">bar<span></span>'
我想這一點:
'<span>foo</span><span style="text-decoration:underline;">bar</span><span>baz</span>'
我也嘗試使用:.+?
,.*?
而是捕獲完整的表達式而沒有結果的。
我不需要解析器我不解析XHTML,也沒有自包含的標記。
可能重複http://stackoverflow.com/questions/1732348/regex-match-open-tags-except -xhtml-self-contained-tags)...請僅使用HTML解析器:( – 2011-02-25 21:05:28
我不想解析XHTML我只有一個標籤類型(跨度)和文本之前,之間,之後 - 爲什麼使用複雜的東西作爲解析器進行這個簡單的替換,I line的代碼,而不是〜1k的解析器。 – jcubic 2011-02-25 21:45:03
@MattBall是的,你應該使用一個解析器,是因爲它可能:這是[義務鏈接](http://stackoverflow.com/q/4231382/471272);請鏈接到實際答案,而不是非答案 – tchrist 2014-06-08 20:09:02