3 votes

Refonte de l'expression régulière pour ne pas inclure les groupes vides

Hey donc j'ai le script suivant qui fonctionne :

Il cherche la chaîne Phone: (##) ### ####

$(function(){

    var regex = /(^|\W)Phone:($|\W)\(?([0-9]{2})\)?([ .-]?)([0-9]{3})\2([0-9]{4})/g;
    var target = $('[data-hook="phone-number"]'); 
    var string = target.html();

    string = string.replace(regex, "><a href=\"tel:$3$5$6\">Phone: ($3) $5 $6</a>");

    target.html(string);
});

Mais comme vous pouvez le remarquer, c'est assez grossier (les regex ne sont pas mon point fort). Je me demandais s'il y avait un moyen d'ignorer les groupes vides ( $1 , $2 , $4 ) dans ce cas.

Donc je peux juste utiliser $1 , $2 , $3 dans un monde idéal.

Je n'ai pas non plus réussi à trouver comment arrêter (^|\W) d'ignorer le > d'où la raison pour laquelle, dans mon replace il y a une terminaison > Existe-t-il un moyen de dire à regex de déplacer / supprimer un chiffre ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X