获取类属性中的所有类名称

时间:2018-08-13 12:10:43

标签: javascript node.js

let string = `
    <div class="camera"></div>
    <div class="cinema alibaba"></div>
`

我有一个像上面的字符串。

如何获取所有类名并将其放入数组中?

预期结果: [相机,电影院,阿里巴巴]

2 个答案:

答案 0 :(得分:4)

您可以使用正则表达式来做到这一点:

let string = `
    <div class="camera"></div>
    <div class="cinema alibaba"></div>
`

let pattern = /.+?class="(.+?)".+?/g

var match = pattern.exec(string);
var arr = []

while (match != null) {
  match[1].split(" ").forEach(x => arr.push(x));
  match = pattern.exec(string)
}

console.log(arr);

答案 1 :(得分:2)

不是最佳解决方案,但是您可以将HTML字符串附加到临时元素,然后选择所有元素以获取类名

let str = `
    <div class="camera"></div>
    <div class="cinema alibaba"></div>
`

let temp = document.createElement('div')
temp.style.display = 'none';
temp.innerHTML = str;

items = temp.querySelectorAll('*')
let classes = [];
items.forEach(item => {
  classes = classes.concat(item.className.split(" "))
});

console.log(classes);