Limiter à 2 le nombre de lettres répétées ?
josephsardin
Messages postés
12
Statut
Membre
-
josephsardin Messages postés 12 Statut Membre -
josephsardin Messages postés 12 Statut Membre -
Bonjour à tous,
J'ai un moteur de recherche sur l'un de mes sites de bruitages : LaSonotheque.org
Parfois, certain visiteurs triplent les lettres, voir plus. Ils peuvent chercher "Bzzzzz" pour trouver un son d'abeille ou "Zzzzzzzzzzzzzz" pour un ronflement...
Je cherche une idée pour réduire les répétitions à 2, que ça recherche "Bzz" ou "Zz" seulement...
Mille mercis !!!
BigSoundBank.com
J'ai un moteur de recherche sur l'un de mes sites de bruitages : LaSonotheque.org
Parfois, certain visiteurs triplent les lettres, voir plus. Ils peuvent chercher "Bzzzzz" pour trouver un son d'abeille ou "Zzzzzzzzzzzzzz" pour un ronflement...
Je cherche une idée pour réduire les répétitions à 2, que ça recherche "Bzz" ou "Zz" seulement...
Mille mercis !!!
BigSoundBank.com
2 réponses
-
Bonjour,
Tu peux utiliser les expressions régulères (regex) aussi bien côté PHP que côté client (via du Javascript par exemple).
par exemple avec le pattern :
(.)\1
-
Merci Jordane45,
Je dois avouer que je ne sais pas trop appliquer ton aide. Je suis assez nul en php, je me contente de copier des lignes et de les adapter dès que j'arrive à les comprendre. Je ne sais pas créer.
Je connais regex de nom, mais pas plus...
Aurais-tu une idée de ligne de code ?
Mille mercis ! -
Tu pense à un remplacement ? du style zzz, zzzz, zzzzz en zz ?
Si c'est le cas, je rêvais d'une solution plus simple. Parce qu'il ne s'agit pas que de Z, mais de toutes les lettres. Jusqu'à 10 à la suite.
Aaaaaah
Oooooooooooh
Tzzzzzz
Tiiiiiiiiiic
Grrrrrrrr
...
Ca me fait une foule de remplacement... 26 lettres en 10 versions, 260 trucs à remplacer, c'est long comme ligne de code... -
Côté "serveur" :
En PHP tu peux automatiquement faire du remplacement en te basant sur une regex
https://www.php.net/manual/fr/function.preg-replace.php
Si tu as le mot , Oooooooooooh tu pourrais le remplacer (dans le code ) par Oh par exemple
Côté client :
En Javascript, tu pourrais détecter que l'utilisateur a saisie un même caractère plusieurs fois et supprimer le "doublon" ou sinon, comme en php, faire un replace automatique -
Jordane45,
J'ai fais ça :echo preg_replace( '/(.)\1/','$1','A BB CCC DDDD EEEEE FFFFFF');
Mais ça donne ça :
A B CC DD EEE FFF
Et :echo preg_replace('#(.)\1+#','$1','A BB CCC DDDD EEEEE FFFFFF');
Donne :
A B C D E F
Alors que je cherche A BB CC DD EE FF...
Je cherche encore :)
Je ne comprend pas trop ce que j'ai écris, mais ça ne marche pas assez bien encore.
Merci pour ton aide ! -
Je viens de faire ça :
echo preg_replace('#(.)\1+#','$1$1','A BB CCC DDDD EEEEE FFFFFF GGGGGGG HHHHHHHH abcdefgh');
Ce qui donne ça :
A BB CC DD EE FF GG HH abcdefgh
PARFAIT ?! Ca semble bien écrit ?
Désolé pour la question, je ne comprend pas un mot du code que j'écris :( J'ai juste testé des milliers de combinaisons...
-
-
Pour les prochains à se poser la question, voici la réponse que j'ai trouvé pour le moment :
echo preg_replace('#(.)\1+#','$1$1','A BB CCC DDDD EEEEE FFFFFF GGGGGGG HHHHHHHH abcdefgh');