Controle champ input prénom composé
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:
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();
});
} |