Utilisation de Replace() avec la HTML textbox.value
Bonjour à tous. Ma première tentative à utiliser ce forum alors j'espère être dans le bon endroit pour cette question.
Voici les trois fonctions que j'utilise mais je n'arrive pas à faire un replace() des caractères avec accents. Pourtant les fonctions replace fonctionnent si j'assigne directement une chaîne litérale à chaine dans la fonction noaccent().
Voici le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
function validation() {
// la valeur du textbox HTML nommé: nom
var txtValue = document.getElementById("nom").value;
if (isValidNameType(txtValue) == false) {
showError(document.getElementById("errnom"), STR_ERR_INVALID_NAME, "errlabelon");
valid = false;
}
return valid;
}
function isValidNameType(txtToVerify) {
var regex = new RegExp("[^a-zA-Z \-]+", "g");
var tempText = noaccent(txtToVerify);
// Je renvoi l'inverse du résultat car celui-ci défini si on a
// trouver des caractères illicites rendant la chaîne invalide.
return (regex.test(tempText) == false)
}
function noaccent(chaine) {
var temp = chaine.replace(/[àâä]/g, "a");
temp = temp.replace(/[éèêë]/g, "e");
temp = temp.replace(/[îï]/g, "i");
temp = temp.replace(/[ôö]/g, "o");
temp = temp.replace(/[ùûü]/g, "u");
temp = temp.replace(/[ÀÂÄ]/g, "A");
temp = temp.replace(/[ÉÈÊË]/g, "E");
temp = temp.replace(/[ÎÏ]/g, "I");
temp = temp.replace(/[ÔÖ]/g, "O");
temp = temp.replace(/[ÙÛÜ]/g, "U");
return temp;
} |
Est-ce que le problême pourrait venir du transfert de la chaîne parmis les trois fonctions? J'ai essayer plusieurs alternatives mais rien n'y va.
J'admet être un peu nouveau pour ce qui est du javascript. Merci d'avance à qui pourra y voir claire ! :)
Voici la solution trouvée.
C'est un 'hack' pour l'instant mais je ne vois pas comment faire autrement. Au moins ça marche ! :)
J'ai essayer de mettre la fonction plus haut sur la page externe de JS mais cela n'a rien changer au problême.
J'ai garder la fonction noaccent(chaine) dans une balise script sur la page HTML. Les deux autres fonctions restent sur la page externe. Ca marche.
Je ne sais pas pourquoi ca marche mais au moins je réussit mes validations ainsi. Un jour proche, j'y regarderai de plus près mais le projet est dû pour ce soir alors pour l'instant ce 'hack' me suffit.