Bonjour,
J'ai besoin de vérifier que le nom / prénom saisi respecte les règles suivantes :
- accent et c cédille
- lettre de l'alphabet
- apostrophe, trait d'union et espace
En gros, si au moins un des caractères de ma saisie ne fait pas partie de al lsite alors je refuse la saisie
Voici mon code
Jusque là, rien de bien méchant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 String.prototype.isNomPrenomValue = function() { var avecAccent = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñÇç"; var alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; var caracAuthoris = " \'\-"; var caracToTest = ""; for(var i = 0; i < this.length; i++){ caracToTest = this.substr(i,1); if(avecAccent.indexOf(caracToTest,0) < 0 && alphabet.indexOf(caracToTest,0) < 0 && caracAuthoris.indexOf(caracToTest,0) < 0 ) return false; } return true; }
Sauf que quand j'arrive dans ma fonction, la liste avecAccent semble être encodé en autre chose ==> le é (par exemple) n'est pas retrouvé et la saisie est considéré comme invalide
La masterPage de la page utilisant cette fonction est encodé en
Si quelqu'un a une idée ou une autre solution, je suis preneur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
J'ai aussi essayé avec une expression régulière mais la liste des caractères accentués était toujours illisible
Précision : si je prends mon code e que je le mets dans une page html à part sans préciser un quelconque encodage, çà fonctionne
Merci d'avance de votre aide
Partager