Bien Je voudrais faire un petit changement d'un matcheur regex dans le noyau de jQuery afin d'accomplir mon but : Autoriser la correspondance des tags avec un tiret dans le nom
Exemple : <auto-link/>
, <user-circle/>
, <something-else></something-else>
Aujourd'hui, le tag matcher/regex de jQuery est déclaré comme suit rsingleTag
variable, vous pouvez voir ici sur leur code source, mais il ne correspond pas à ce dont j'ai besoin. J'ai donc apporté ma modification :
- Regex par défaut :
/^<(\w+)\s*\/?>(?:<\/\1>|)$/
- Regex modifié avec des tirets :
/^<(\w(\w|-\w)*\s*\/?)>(?:<\/\1>|)$/
Les modifications que j'ai apportées correspondent parfaitement, mais lorsque j'essaie d'en extraire des chaînes de caractères en utilisant rsingleTag.exec("<auto-link/>")
le résultat attendu n'est pas similaire à la regex par défaut de jQuery.
- Regex par défaut :
rsingleTag.exec("<div/>")
=>["<div/>", "div"]
- Regex modifié avec des tirets :
rsingleTag.exec("<div/>")
=>["<div/>", "div/", "v"]
J'aimerais que le résultat de la regex modifiée soit le même que celui de la regex par défaut, en plus d'autoriser les balises avec des tirets. Qu'est-ce que je fais de mal ou comment puis-je le corriger ?