我有一串 HTML,在这个例子中它看起来像
<img src="somepic.jpg" someAtrib="1" >
我正在尝试使用正则表达式来匹配“img”节点,并在节点末尾应用斜杠,使其看起来像。
<img src="somepic.jpg" someAtrib="1" />
本质上,这里的最终目标是确保节点是关闭的,打开的节点在 HTML 中有效,但显然在 XML 中无效。是否有任何正则表达式爱好者可以提供帮助?
最佳答案
不要使用正则表达式,而是使用专用的解析器。在 JavaScript 中,使用 DOMParser
创建文档, 然后使用 XMLSerializer
序列化它:
var doc = new DOMParser().parseFromString('<img src="foo">', 'text/html');
var result = new XMLSerializer().serializeToString(doc);
// result:
// <html xmlns="http://www.w3.org/1999/xhtml"><head></head><body> (no line break)
// <img src="foo" /></body></html>
你必须使用 xmldom如果您需要将其与 nodejs 后端一起使用。 npm i xmldom
.
关于javascript - 如何将 HTML 转换为有效的 XHTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12092532/