Bonjour

je cherche à contrôler la saisie dans un input avec :
  • une liste de caractères autorisés (cette partie fonctionne)
  • que le texte tapé sois modifié à la volée selon le format Xxxxx-Xxxxxx c'est la que je séche


J'arrive bien à ce que le premier caractère soit en majuscule et que le reste soit en minuscule mais je n'arrive à mettre la majuscule après le tiret

Si quelqu'un pouvez m'aider ?

Merci

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
	function verifprenom(chars) {
		// Caractères autorisés
		var regex = new RegExp(/[a-zA-Zàáâäçèéêëìíîïòóôöùúûü-]/, "i");
		var valid;
		for (var x = 0; x < chars.value.length; x++) {
			valid = regex.test(chars.value.charAt(x));
			if (valid === false) {
				chars.value = chars.value.substr(0, x) + chars.value.substr(x + 1, chars.value.length - x + 1);
				x--;
			}
		}
 
		var regexMajuscule = new RegExp(/(^.|-.)/g);
		chars.value = chars.value.replace(regexMajuscule, function (a) {
			if (a.startsWith('-')) {
				return '-' + a.charAt(1).toUpperCase() + a.substr(2).toLowerCase();
			} else {
				return a.charAt(0).toUpperCase() + a.slice(1).toLowerCase();
			}
		});
 
		var regexFormat = new RegExp(/\S+(?:\s|$)/g);
		chars.value = chars.value.replace(regexFormat, function (word) {
			return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
		});
	}