1
A
回答
3
如果您重複使用正則表達式的次數可能與元素中的標記次數相同,那麼只要文本相當正常並且不包含大量可能會導致誤報的特殊字符,就應該可以工作。
"<a href=www.google.com title = link >".replace(/(<[^>]+?=)([^"'\s][^\s>]+)/g,"$1'$2'")
正則表達式表示:其次是等於(=
)所有拍攝的第一組((...)
),並隨後第二組開放標籤(<
),隨後由一個或多個未關閉標籤([^>]+
)ungreedily(?
) ((...)
)一次或多次(+
)捕獲單個或雙引號或空格([^"'\s]
)後跟非空格或關閉標記([^\s>]
),然後將其替換爲第一個捕獲的組($1
),然後用單引號將第二個捕獲的組替換('$2'
)
例如與循環:
html = "<a href=www.google.com another=something title = link >";
newhtml = null;
while(html != newhtml){
if(newhtml)
html = newhtml;
var newhtml = html.replace(/(<[^>]+?=)([^"'\s][^\s>]+)/,"$1'$2'");
}
alert(html);
但是,這是一個糟糕的方式去了解你的問題。最好使用HTML解析器解析,然後根據需要重新格式化HTML。這將確保格式良好的HTML格式正則表達式只能確保格式良好的HTML,如果輸入完全按照預期。
1
非常有幫助!我做了一些細微的修改,使其與單個字符值的屬性匹配: /(<[^>]+?=)([^"'\s>][^\s>]*)/g
(將一個或多個+
更改爲零個或多個*
,並將>
添加到第二組中的第一個匹配中)。
相關問題
- 1. 把報價在HTML屬性
- 2. 正則表達式:讓HTML屬性
- 3. 正則表達式的HTML屬性
- 4. 正則表達式來獲得HTML屬性沒有價值
- 5. 把報價:查找和使用正則表達式
- 6. 正則表達式來獲得報價
- 7. 正則表達式中的「報價」
- 8. 正則表達式查找報價
- 9. 正則表達式不匹配報價
- 10. 股票報價正則表達式
- 11. 正則表達式的報價
- 12. 正則表達式匹配報價
- 13. VIM的正則表達式的報價
- 14. Javascript正則表達式報價
- 15. 正則表達式用於報價
- 16. 正則表達式匹配報價
- 17. 紅寶石報價正則表達式
- 18. 三重報價正則表達式
- 19. 正則表達式:發現和報價
- 20. 正則表達式PHP:一套報價
- 21. Javascript lastIndex正則表達式屬性到PHP正則表達式
- 22. 支架內的正則表達式匹配的正則表達式的報價
- 23. 如何添加報價到FreeMarker的屬性裏面的正則表達式
- 24. 正則表達式價格
- 25. 正則表達式匹配HTML樣式屬性
- 26. 正則表達式匹配html樣式屬性的有效值
- 27. 正則表達式:更改HTML屬性值以某種模式
- 28. 正則表達式的屬性文件
- 29. 正則表達式屬性標記
- 30. 正則表達式提取屬性
爲什麼你需要添加引號?對於HTML 4.01,它們不是必需的。 – Oded
請給我們展示一些html和JS代碼(它是怎麼回事,以及它應該如何),所以我們可以理解你在說什麼。 –
您是否考慮過使用HTML解析器而不是正則表達式? –