javascript - 如何通过正则表达式获取所有类名
问题描述
let string = `<img class="img-fluid big-img logo">
<a class="link link-red link-2">link</a>`;
我想通过正则表达式而不是其他方式获取所有类名
我想把它们放在一个数组中,比如:
let allClass = ["img-fluid", "big-img", "logo", "link",......];
解决方案
也许你可以做这样的事情:
var pattern = /class="([^"]+)"/g;
var classes = [];
[...string.matchAll(pattern)].
forEach(
match => classes = classes.concat( (match[1].split(" ")) )
);
console.log(classes); // ["img-fluid", "big-img", "logo", "link", "link-red", "link-2"]
实际上,我们有一个匹配class="..."
并捕获引号内所有内容的正则表达式。然后我们matchAll
添加扩展运算符( ...
) 运行,以便它生成一个我们可以迭代的数组forEach
。
然后我们简单地遍历数组,将捕获的字符串拆分成一个数组并与classes
数组合并
推荐阅读
- java - 为什么在 BottomNavigationViewEx 中未突出显示所选图标?
- awk - 阻止 AWK 用空格替换制表符
- c# - 使用 LINQ 编译唯一对象列表
- r - 在 LSF 中提交作业数组
- awk - Awk: Is there a way to specify command line options in awkfile?
- android - flexwrap:React Native 中的 'wrap' 项目填充问题
- python - 在我的速度计算中没有得到方向值
- c# - 我的程序输出错误的值
- javascript - 需要一些代码来按访问者国家/地区更改文本
- node.js - 如何停止 onsubmit 表单以触发自身?