javascript - Javascript RegExp 未知的重复匹配
问题描述
这很难描述,因为我不是正则表达式的专家。所以我告诉你我的情况。
在 HTML 中,希望将class
属性贡献给不同的data-xyz
属性。问题是每次比赛总是获得所有课程。例如下面的 HTML:
<span class="note-123 index-3 green">Hello</span> <span class="index-456 red">World<span>
到目前为止,我的正则表达式是/<span class="([^\"\s]*)\s*/
并且它与第一类匹配。在这种情况下note-123
和index-456
但是,如果我想获得每个元素的所有类,我可以使用/<span class="([^\"\s]*)\s*([^\"\s]*)\s*([^\"\s]*)\s*/
. 这一直有效,直到三个类和第二个类的结果 returnindex-456
和red
一个空字符串。
无论有多少类,是否有可能总是在每场比赛中获得所有类?类似于 Javascript 中的嵌套循环?
我很乐意从你们那里得到任何帮助。
解决方案
您可以在不使用正则表达式的情况下获取类,使用querySelectorAll来查找您想要的元素并使用classList来获取类名。
或使用DOMParser。
注意关闭最后一个跨度。
let elms = document.querySelectorAll("span");
elms.forEach(e => {
for (let value of e.classList.values()) {
console.log(value);
}
});
<span class="note-123 index-3 green">Hello</span> <span class="index-456 red">World</span>
推荐阅读
- wpf - 如何相对于一个中央控件定位控件?
- android - 有没有办法知道我在某个构建中拥有的每个 gradle 依赖项的版本?
- git - 使用 git add -p 时如何配置 git 以显示移动的行?
- oracle-data-integrator - 如何在 ODI 中的 2 个表之间进行多个联接?
- java - 捕获 ARCore ArSceneView 的位图
- java - 使用嵌套方法的方法引用运算符很热门?
- maven - Maven UnknownArchetype 异常
- multithreading - 在 pthread_cond_timedwait 和 pthread_mutex_lock 上崩溃
- git - GitHub 拉取请求与 Git 命令行合并
- javascript - 将 agSetColumnFilter 与服务器端行模型一起使用