Bonjour,

j'aimerai interdire de rentrer des caractères spéciaux dans certains champs de mon formulaire d'inscription.

par exemple dans le champ "userName", interdire tout ce qui n'est pas alpha-numérique, ou "_" ou "-"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
function restrictive_userName()
{
    var input = document.getElementById('input_userName');
    while (input.value.match(/[^a-zA-Z0-9_-]/))
    {
    	input.value = input.value.replace(/[^a-zA-Z0-9_-]/,'');
    }
}
Ça fonctionne.

J'ai voulu continuer avec le champ "email" auquel il faudrait la même règle que pour le "userName", avec en plus lui autoriser les caractères "@" et "."
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
function restrictive_email()
{
    var input = document.getElementById('input_email');
    while (input.value.match(/[^a-zA-Z0-9_-]/))
    {
    	input.value = input.value.replace(/[^a-zA-Z0-9_\.-]/,'');
    }
}
Mais ce code fait planter tous les navigateurs avec lesquels j'ai essayé (FireFox, GoogleChrome, Opera, Safari)

si j'enlève le "\." ça fonctionne, si je le laisse ça plante.

Fonctionne :
Plante :
Plante :
(je rajouterai le "@" quand ça fonctionnera...)