Interdire 2 espaces consécutif dans input

Résolu
13stephweb13 Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   -  
13stephweb13 Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je bloc sur un petit truc, donc je fait appel à votre aide svp:

Dans un champ input de type text, je souhaite interdire 2 espaces consécutif.
Je pensais que ceci est faisable avec preg_match, j'ai essayé ceci:
if(!preg_match("#^[ ]{2,1000}$#",$texte)) {
	OK...
}
else {
	Erreur...
}

Mais sans succès.
Y-a t-il une solution?

Merci beaucoup
A voir également:

2 réponses

VlkPr3s Messages postés 235 Date d'inscription   Statut Membre Dernière intervention   130
 
Salut, sans trop t'en dire va voir du coté de trim ;) !

dis moi quoi ! :)
0
13stephweb13 Messages postés 48 Date d'inscription   Statut Membre Dernière intervention  
 
merci,
mais trim supprime les espaces en début et fin de chaine de caractères.
Donc ça ne résous pas mon problème.

Ce que je veut c'est autoriser un espace, exemple:
text bla bla

Et surtout interdire 2 espaces consécutifs

merci
0
VlkPr3s Messages postés 235 Date d'inscription   Statut Membre Dernière intervention   130
 
Alors à ce moment là fait une recherche dans ta chaine et si tu as plus de deux espaces tu lui envoie une erreur
0
13stephweb13 Messages postés 48 Date d'inscription   Statut Membre Dernière intervention  
 
ok merci. mais comment faire ceci? car je débute, et j'ai fais pas mal de recherche dans Google. Mais je n'ai pas trouvé la solution.
Merci.
0
ReDLoG Messages postés 243 Date d'inscription   Statut Membre Dernière intervention   57 > 13stephweb13 Messages postés 48 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir,
Pas la peine d'interdire, il suffit de traiter dans le script PHP la chaîne reçue pour supprimer les espaces en trop, ça évite des allers/retours entre l'utilisateur et le serveur inutilement. Ainsi tu peux utiliser la chaîne nettoyée pour ton but final (insertion en bdd, envoi mail, etc...) :
<?php
/* Enlève les espaces en trop (double espaces, triple espaces, etc...) */
$string = "Voici  une  chaîne  qui  comporte  2  espaces  consécutifs.";
$string = preg_replace("/\s+/", " ", $string);
echo $string; // Pour le test
?>

Cordialement.
0
13stephweb13 Messages postés 48 Date d'inscription   Statut Membre Dernière intervention  
 
ok merci
0