Comment empêcher les espaces dans un formulaire HTML ?

Réponses rédigées par Antoine
Dernière mise à jour : 2020-01-12 15:24:26
Thèmes : webmaster - html - javascript - php
Question

Comment empêcher la saisie des espaces dans un formulaire HTML ?

Réponse

Pour empêcher la saisie des espaces dans un formulaire HTML, vous pouvez utiliser JavaScript et sa fonction replace via les événements onkeyup et onkeydown des formulaire du type texte.

<script type="text/javascript">
    function nospaces(input) {
        input.value = input.value.replace(/s/gi, "");
        return true;
    }
</script>

<input type="text" onkeyup="javascript:nospaces(this)" onkeydown="javascript:nospaces(this)">

Une autre solution consiste à identifier quelle touche clavier est utilisée pour remplir le formulaire, et ainsi détecter et empêcher les espaces, mais cette solution ne fonctionne pas dans le cas d'un copier-coller contenant des espaces.

<input type="text" onkeydown="if(event.keyCode==32) return false;">

Par ailleurs, si votre formulaire est ensuite traité par du code PHP, vous devez également effectuer la vérification de la présence d'espaces, coté serveur, en PHP.

Si vous souhaitez simplement supprimer tous les espaces, quel que soit leur emplacement dans la chaîne, vous devez utiliser la fonction PHP str_replace() pour remplacer toutes leurs occurrences par une chaîne vide.

$valeur = str_replace(' ', '', $phrase);

Un espace peut être aussi représenté par des caractères spéciaux comme l’expression régulière \s ou \t, dans ces cas là mieux vaut utiliser la fonction PHP preg_replace().

$valeur = preg_replace('/\s/', '', $phrase);