Bonjour à tous,

J'ai un formulaire qui doit récupérer une variable qui servira de nom de dossier (valide donc), je cherche à la valider coté client et je la revaliderai ensuite coté serveur.

Je ne maîtrise pas trop les regex et à ce stade il me manque uniquement le filtrage des caractères spéciaux et de la ponctuation (uniquement les caractère pas autorisés).

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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
		// Traiter un str pour qu'il devienne un nom de dossier valide
		str2folderName: function(str) {
			if ( (str !=  '') && (str != undefined) ) {
 
				var newStr = String(str);
 
				// Virer les espaces
				newStr = newStr.replace(' ', '_');
 
				// Virer les caractères interdits
				// ici je seche et a moins de multiplier les replace je souhaiterai trouver un regex qui me cible tout ca
 
				// Virer les accents
				newStr = newStr.replace(/(&#x40|@|@|@|&#x41|A|A|&#x61|a|&#xC0|À|À|À|&#xC1|Á|Á|Á|&#xC2|Â|Â|Â|&#xC3|Ã|Ã|Ã|&#xC4|Ä|Ä|Ä|&#xC5|Å|Å|Å|&#xE0|à|à|à|&#xE1|á|á|á|&#xE2|â|â|â|&#xE3|ã|ã|ã|&#xE4|ä|ä|ä|&#xE5|å|å|å)/gi,'a');
				newStr = newStr.replace(/(&#xC7|Ç|Ç|Ç|&#xE7|ç|ç|ç)/gi,'c');
				newStr = newStr.replace(/(&#xD0|Ð|Ð|Ð)/gi,'d');
				newStr = newStr.replace(/(E|E|E|e|e|È|È|È|È|É|É|É|É|Ê|Ê|Ê|Ê|Ë|Ë|Ë|Ë|è|è|è|è|é|é|é|é|ê|ê|ê|ê|ë|ë|ë|ë)/gi,'e');
				newStr = newStr.replace(/(&#x49|I|I|&#x69|i|&#xCC|Ì|Ì|Ì|&#xCD|Í|Í|Í|&#xCE|Î|Î|Î|&#xCF|Ï|Ï|Ï|&#xEC|ì|ì|ì|&#xED|í|í|í|&#xEE|î|î|î|&#xEF|ï|ï|ï)/gi,'i');
				newStr = newStr.replace(/(&#x4E|N|N|&#x6E|n|&#xD1|Ñ|Ñ|Ñ|&#xF1|ñ|ñ|ñ)/gi,'n');
				newStr = newStr.replace(/(&#x4F|O|O|&#x6F|o|&#xD2|Ò|Ò|Ò|&#xD3|Ó|Ó|Ó|&#xD4|Ô|Ô|Ô|&#xD5|Õ|Õ|Õ|&#xD6|Ö|Ö|Ö|&#xF2|ò|ò|ò|&#xF3|ó|ó|ó|&#xF4|ô|ô|ô|&#xF5|õ|õ|õ|&#xF6|ö|ö|ö|&#xF8|ø|ø|ø)/gi,'o');
				newStr = newStr.replace(/(&#x55|U|U|&#x75|u|&#xD9|Ù|Ù|Ù|&#xDA|Ú|Ú|Ú|&#xDB|Û|Û|Û|&#xDC|Ü|Ü|Ü|&#xF9|ù|ù|ù|&#xFA|ú|ú|ú|&#xFB|û|û|û|&#xFC|ü|ü|ü)/gi,'u');
				newStr = newStr.replace(/(&#x59|Y|Y|&#x79|y|&#xDD|Ý|Ý|Ý|&#xFD|ý|ý|ý|&#xFF|ÿ|ÿ|ÿ)/gi,'y');
				newStr = newStr.replace(/(&#xC6|Æ|Æ|Æ|&#xE6|æ|æ|æ)/gi,'ae');
				newStr = newStr.replace(/(&#x8C|Œ|Œ|Œ|&#x9C|œ|œ|œ)/gi,'oe');
 
				return newStr;
			} else {
				return '';
			}
		},
Merci de votre aide.

Nicolas