我有以下情况,我正在 HTML 字符串中搜索属性。
我有以下正则表达式,但我想得到唯一的结果,当然我可以对结果数组应用一些过滤器,但我认为这可以通过纯正则表达式实现。
https://regex101.com/r/UqCuJS/1
所以在这种情况下类被返回两次,但我只想要 1 次:
['class', 'data-text']
不是 ['class', 'data-text', 'class']
const html = `<div class="foo">
<span data-text="Some string" class="bar"></span>
</div>`
console.log(html.match(/[\w-:]+(?=\s*=\s*".*?")/g))
最佳答案
您可以将.match()
的结果传递给Set
,它不允许重复值。如有必要,将 Set
实例转换回 Array
。
const html = `<div class="foo">
<span data-text="Some string" class="bar"></span>
</div>`
// or use existing `RegExp`
console.log([...new Set(html.match(/([\w-]+)(?=[=]")/g))])
关于javascript - 正则表达式匹配唯一结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43707906/