javascript - 如果属性值可能包含 ">"字符,则使用 JavaScript Regex 匹配所有 html 标签

标签 javascript html regex

我想用正则表达式 /<[^>]*>/g 匹配字符串中的所有 html 标签

但有些标签的属性值中带有“">”,例如 <div :if="x > 1"> ,只能得到<div :if="x>结果。

如何修改正则表达式来解决这个问题?

<小时/>

实际上,我不需要匹配所有真正有效的 html 标签。我只需要匹配所有 <***> ,其中“>”不能用引号引起来。

最佳答案

如果您有已解析的 HTML,您可以使用 css 选择器和 document.querySelectorAll 来执行查找元素的操作。

'[\\:if*=\\>]' 使用转义字符 \\ 可以直接搜索标记名 :if 并使用 *= 选择器,您可以在属性值的任何位置找到 >(转义)。

不过,我同意@JonathanLowowski。属性名称 :if 看起来不正确,并且在 IE 中可能会失败。但它看起来确实像一个没有命名空间的命名空间属性。

const elements = document.querySelectorAll('[\\:if*=\\>]')

console.log(elements)
<div :if="x > 1"></div>
<div :if="x"></div>

关于javascript - 如果属性值可能包含 ">"字符,则使用 JavaScript Regex 匹配所有 html 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40956430/

相关文章:

javascript - 按回车键使用 html/css/js 创建一个带标签的文本框(附截图)

javascript - process.env 在 `npm run build` (Ubuntu) 时不包含 ENV VARS

javascript - 是否可以使用其属性 data-value 而不是 div id 来调用模态?

html - 如何在本教程中用我自己的图像替换 bg 图像元素

java - 正则表达式查找一个单词(如果它呈现 java)

java - float 和非 float 的正则表达式,后跟单词

javascript - CSS/JavaScript/Jquery : Show/Hide a DIV Depending on one of two images being clicked

javascript - 如何在javascript中为innerhtml添加CSS

regex - sed 递归替换

html - 强制 child 在悬停时继承父颜色