Chaine de caractère avec accent
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
Code:
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;
} |
Jusque là, rien de bien méchant
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
Code:
1 2
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" /> |
Si quelqu'un a une idée ou une autre solution, je suis preneur
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