JS querySelectorAll和一个正则表达式作为选择器

时间:2017-01-15 00:13:35

标签: javascript regex

我想写一些类似的东西:

var N = document.querySelectorAll("input[id^='left"+/^[0-9]*$/+"right']").length;

我如何使用JS / JQuery?

1 个答案:

答案 0 :(得分:2)

你不能。属性选择器不支持regexp。您可以根据前缀和后缀进行选择:

[id^="left"][id$="right"]

如果您要排除ID在leftright之间缺少数字的元素,则必须将其过滤掉:

Array.from(queryResults).filter(elt => /^left\d*right$/.test(elt.id));

但是,一般而言,使用具有复杂内部结构的ID通常不是最佳方法。你将不得不继续构建它们并将它们分开。考虑使用类和/或数据属性,或者通常情况下,如果您自己创建元素,您可以只记住元素并直接引用它们。