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 : 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;           
}
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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