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