Javascript 向document.querySelectorAll添加OR子句

Javascript 向document.querySelectorAll添加OR子句,javascript,html,Javascript,Html,我面临的情况与前面描述的相同。该解决方案也是可以接受的,但在最坏的情况下会变得单调乏味。例如,我尝试将该技术应用于以下概念场景: <input id="txtXMLS01" /> <input id="txtXMLS02" /> <input id="txtXMLS03" /> . . . <input id="txtXMLS100" /> <input id="txtXMLM01" /> <input id="txtXMLM0

我面临的情况与前面描述的相同。该解决方案也是可以接受的,但在最坏的情况下会变得单调乏味。例如,我尝试将该技术应用于以下概念场景:

<input id="txtXMLS01" />
<input id="txtXMLS02" />
<input id="txtXMLS03" />
.
.
.
<input id="txtXMLS100" />

<input id="txtXMLM01" />
<input id="txtXMLM02" />
<input id="txtXMLM03" />
.
.
.
<input id="txtXMLM100" />

<input id="txtSVGS01" />
<input id="txtSVGS02" />
<input id="txtSVGS03" />
.
.
.
<input id="txtSVGS100" />

<input id="txtSVGM01" />
<input id="txtSVGM02" />
<input id="txtSVGM03" />
.
.
.
<input id="txtSVGM100" />

.
.
.
.
.
.
.
.
.
.
.
.
还有其他类似于以下代码片段的技术吗

<script type="text/javascript">
var textBox=document.querySelectorAll("input[id^=txt(XML|SVG)[S|M|L](\d)*]")
</script>

var textBox=document.querySelectorAll(“输入[id^=txt(XML | SVG)[S|M | L](\d)*]))

添加[1]:我的目标是只提取具有以下模式的节点
txtsvm*
txtsvm*
txtSVGS*
txtSVGM*
。为什么我这么说是因为在同一页中还有其他文本框以
txt

开头,您可以将
过滤器
regex

var textBoxes = Array.from( document.querySelectorAll("input[id]" ) ).filter( s => !!s.id.match( /txt(XML|SVG)[S|M|L](\d)*/ );
解释

  • Array.from
    document.querySelectorAll(“输入[id]”)的输出转换为数组

  • filter
    将根据作为regex传递的条件从
    array.from
    中筛选结果数组

  • !!s、 id.match(/txt(XML | SVG)[s | M | L](\d)*/
    将匹配结果转换为等效的布尔值


    • 你是说
      /…/。测试(s.id)
      ?那会更规范。是的@PatrickRoberts也可以。一旦OP确认这个解决方案对他有效,我会向他指出这一点。鉴于OP没有共享一个有效的代码片段,我发现很难创建一个演示。@gurvinder372谢谢兄弟。它帮助了我。我调整了代码如下
      var textBoxes=Array.from(document.queryselectoral(“input[id^=txt]”)、filter(s=>/(XML[s|M]| SVG[s|M])(\d*)/.test(s.id));
      可能重复的@SLePort:Bro,我已经链接了问题中的一个超链接,它与您所指的链接类似。我试图实现的是,而不是编码
      [id^=txtmls][id^=txtmxmlm[id^=txtSVGS][id^=txtSVGM]
      ,是否有一种单行技术可以减少编码量?@SLePort是否有相关术语或技术?您提供的链接中的解决方案不使用regex,即可能重复的链接(以及下面的答案)是的。@SLePort谢谢你,伙计,对不起,我对基于CSS选择器的正则表达式和JS正则表达式有点困惑。下面由
      gurvinder372
      给出的答案在根据我的要求进行调整后有效