SolykZ
Messages postés24Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 7 avril 2009
-
7 avril 2009 à 16:44
Bonjour à tous ! :)
J'aimerais vos conseils quant à l'utilisation, dans JavaScript, des expressions régulières afin de traiter une chaine contenant des caractères répétés. :-)
Je m'explique : une chaine contient "loooooooooooooooooooooooooooooooooooooool". C'est moche. J'y applique donc :
content = content.replace(/(.)\1{3,}/g, "$1");
et j'obtiens alors "lol".
Ceci n'est, bien entendu, qu'un exemple. Si j'ai bien fait ça (à vrai dire je suis allergique aux RegExp), mon expression appliquera le même traitement à tous les caractères répétés au moins trois fois. Donc, "terriiiiiiiiiiiiiiiiiiiiiiiiiiible" deviendra "terrible", "!!!!!!!!!!!!!!!!!" deviendra "!", et ainsi de suite.
J'ai néanmoins oublié une autre dimension à tout ça : les chaines répétées. A savoir qu'en l'état actuel, mon expression ne gère pas des chaines telles que "Mouahahahahahahahahaha". Pour le coup, j'ai essayé :
J'obtiens alors "Mouahahah". Mais j'ai l'impression que c'est pas très pratique. Admettons qu'on tombe alors sur "Mouahaahaahaahaa", rien ne sera traité. Car la chaine répétée contient trois caractères.
Existe-t-il un moyen de simplifier tout ça ?
En clair, j'aimerais que toute séquence d'au moins un caractère répétée plus de trois fois soit réduite à une seule apparition. J'ignore si je me suis bien exprimé, sur ce coup, mais si ce n'est pas le cas je tâcherai d'être plus clair. ;-)
Un grand merci à toute personne qui se penchera sur la question. :-)