我想创建一个 JavaScript 函数,它可以查看一串 CSS 选择器,并从其他选择器(例如 ID 和类)中选择作为标签名称( body 、 p 、 h1 )的元素( #test .test1 )
一个例子是字符串: “span#a53195yio1rnin6d2t9 div.first”
只返回span和div,剩下的
这是我到目前为止所拥有的,但它选择“#”或“.”之后的所有内容
(\b(?!#|!.)\w+)\b
最佳答案
如果您的环境支持lookbehind,只需向后查找空格或行开头:
const str = "span#a53195yio1rnin6d2t9 div.first";
console.log(
str.match(/(?:^|(?<= ))\w+/gm)
);
否则,如果您必须支持旧版浏览器,则必须手动迭代匹配 - 匹配字符串或空格的开头,然后捕获组中的下一个单词字符,并提取该捕获组:
const str = "span#a53195yio1rnin6d2t9 div.first";
const re = /(?:^| )(\w+)/gm;
const matches = [];
let match;
while (match = re.exec(str)) {
matches.push(match[1]);
}
console.log(matches);
关于javascript - 如何创建一个正则表达式来选择不以 '#' 或 '.' 开头的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55367828/