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

Javascript JS querySelectorAll和一个正则表达式作为选择器,javascript,regex,Javascript,Regex,我想写一些类似的东西: var N = document.querySelectorAll("input[id^='left"+/^[0-9]*$/+"right']").length; 在JS/JQuery中我该怎么做 你不能。属性选择器不支持regexp。您可以根据前缀和后缀进行选择,但: [id^="left"][id$="right"] 如果要排除ID在左和右之间缺少数字的元素,则必须将其过滤掉: Array.from(queryResults).filter(elt => /

我想写一些类似的东西:

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

在JS/JQuery中我该怎么做

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

[id^="left"][id$="right"]
如果要排除ID在
之间缺少数字的元素,则必须将其过滤掉:

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

然而,一般来说,使用内部结构复杂的入侵检测系统通常不是最好的方法。你必须不断地构建它们,并将它们分开。考虑使用类和/或数据属性,或者通常情况下,如果您自己创建元素,则可以只记住元素并直接引用它们。属性选择器不支持regexp。您可以根据前缀和后缀进行选择,但:

[id^="left"][id$="right"]
如果要排除ID在
之间缺少数字的元素,则必须将其过滤掉:

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

然而,一般来说,使用内部结构复杂的入侵检测系统通常不是最好的方法。你必须不断地构建它们,并将它们分开。考虑使用类和/或数据属性,或者通常情况下,如果您自己创建元素,则可以只记住元素并直接引用它们。

QueRESULTS .FILL(ELT=ELT.ID.TEST(/L\\D\**右$/));返回错误。过滤器不是一个函数(对不起,我缺少一些基本的东西)。(id是给定的,我必须使用它们)尝试
Array.from(queryResults).filter
,或者在较旧的环境中
Array.prototype.filter.call(queryResults,filterfunc)
。不,我必须去,明天需要更好地检查。谢谢。是的,我知道了。非常感谢。(也许你可以编辑你的答案,包括/解释你的评论)queryResults.filter(elt=>elt.id.test(/^left\d*right$/);返回错误。过滤器不是一个函数(对不起,我缺少一些基本的东西)。(id是给定的,我必须使用它们)尝试
Array.from(queryResults).filter
,或者在较旧的环境中
Array.prototype.filter.call(queryResults,filterfunc)
。不,我必须去,明天需要更好地检查。谢谢。是的,我知道了。非常感谢。(也许你可以编辑你的答案,包括/解释你的评论)