Verwenden Sie reguläre Ausdrücke, um ID-Werte abzugleichen
P粉757556355
P粉757556355 2023-08-30 16:13:18
0
1
592
<p>Ich möchte alle untergeordneten Knoten des <code>g</code>-Knotens finden, dessen Wert <code>id</code> ist und das Attribut aus </p> besteht. <pre class="brush:php;toolbar:false;">a[number]-[ein oder mehrere Zeichen] // Beispiel: // - id="a1-a" // - id="a1-b" // - id="a1-abcd" // - id="a10-f" // - id="a0-z" // - id="b1-a" // Ungültig // - id="a1-2" // Illegal</pre> <p>Also habe ich versucht:</p> <pre class="lang-js Prettyprint-override"><code>const items = gElement.querySelectorAll(`[id^='a[0-9]+-[a-zA-Z]+'] `) </code></pre> <p>Es funktioniert jedoch nicht. </p>
P粉757556355
P粉757556355

Antworte allen(1)
P粉237647645

在你的查询选择器中,你使用的模式 ([0-9]+) 没有被解释为正则表达式。使用 RegExp 构造函数从字符串创建一个正则表达式对象:

const regex = new RegExp('^a[0-9]+-[a-zA-Z]+$');
const parentElement = document.querySelector('#parent-element');
const items = parentElement.querySelectorAll(`[id]`);
const children = Array.from(items).filter(item => regex.test(item.id));

console.log(children); 
<div id="parent-element">
  <p id="a1-a">Child 1</p>
  <p id="a1-b">Child 2</p>
  <p id="INVALID-1">Child 3</p>
  <p id="a10-f">Child 4</p>
  <p id="INVALID-2">Child 5</p>
  <p id="b1-a">Child 6</p>
  <p id="a1-2">Child 7</p>
</div>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage