例如我有HTML:
<html>
<span href="" />
<span href="" noname />
<span noname />
<span="sss" />
</html>
我想找到没有 =“”的每个属性。在此示例中,它将是:“noname”
我的尝试是:
<[A-Za-z]+^={1}.*[A-Za-z]+^\=].*>
但没有成功......
在这种情况下,第一个属性“span”是正常的,因此RegEx不应该找到它。只有这些在标签的中间。
答案 0 :(得分:1)
您可以利用该属性的使用方式而无需使用值。
/
或>
之后根据以上所述,您可以使用RegEx \s([a-zA-Z]+)[\s/>]
RegEx说明:
\s
:匹配空格字符([a-zA-Z][a-zA-Z-]+)
:匹配以字母开头的单词,可以包含连字符-
符号并将其添加到捕获的组中[\s/>]
:匹配空格,/
或>
使用JavaScript进行演示:
var str = `<html>
<a href="">link</a>
<span class="" noname >Lorem</span>
<input required />
<span id="sss" >More Content</span>
</html>`;
var regex = /\s([a-zA-Z][a-zA-Z-]+)[\s\/>]/g;
var attributes = str.match(regex);
document.body.innerHTML = attributes;
&#13;