recherche

Maison  >  Questions et réponses  >  le corps du texte

Utiliser des expressions régulières pour faire correspondre les valeurs d'identifiant

<p>Je souhaite trouver tous les nœuds enfants du nœud <code>g</code> dont la valeur est <code>id</code> <pre class="brush:php;toolbar:false;">a[numéro]-[un ou plusieurs caractères] // exemple: // - id="a1-a" // - id="a1-b" // - id="a1-abcd" // - id="a10-f" // - id="a0-z" // - id="b1-a" // Illégal // - id="a1-2" // Illégal</pre> <p>Alors j'ai essayé : </p> <pre class="lang-js Prettyprint-override"><code>const items = gElement.querySelectorAll(`[id^='a[0-9]+-[a-zA-Z]+'] `) </code></pre> <p>Cependant, cela ne fonctionne pas. </p>
P粉757556355P粉757556355460 Il y a quelques jours576

répondre à tous(1)je répondrai

  • P粉237647645

    P粉2376476452023-08-31 10:23:22

    Dans votre sélecteur de requête, vous utilisez un modèle ([0-9]+) qui n'est pas interprété comme une expression régulière. Créez un objet expression régulière à partir d'une chaîne à l'aide du constructeur 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>

    répondre
    0
  • Annulerrépondre