Bonjour à tous.
J'aimerais savoir la commande pour insérer un tiret en 6 ème position d'une chaine de caractère que je récupère d'un champs de saisie.
Par exemple:
77777111111
deviendrait
77777-111111
Merci pour votre aide.
Version imprimable
Bonjour à tous.
J'aimerais savoir la commande pour insérer un tiret en 6 ème position d'une chaine de caractère que je récupère d'un champs de saisie.
Par exemple:
77777111111
deviendrait
77777-111111
Merci pour votre aide.
une autre possibilité par destructuration:Code:str=str.replace(/^(.{5})/,"$1-");
Code:
1
2
3
4
5 let str="77777111111"; let [a,b,c,d,e, ...rest]=str; console.log(a+b+c+d+e+"-"+rest.join(''))
j'ai ceci pour l'instant:
si je remplace (/\s/g,"") par (/^(.{5})/,"$1-") ça rajoute bien le tiret, ça marche nickel! ;)Code:
1
2
3
4
5
6 b2.addEventListener("click",function(){ const num=z2.value; z.value=num.replace(/\s/g,""); z.select(); document.execCommand("copy") },false);
Merci!
Mais comment garder cette suppression d'espace avant l'insertion du tiret svp?
Bonjour,
Oui, c'est bien cela...
Suppression des espaces puis insertion du tiret.
Je n'y parviens pas.
EDIT:
Je viens de trouver ça, c'est bon?
;)
Code:
1
2
3
4
5
6
7 b2.addEventListener("click",function(){ const num=z2.value; z.value=num.replace(/\s/g,""); const num2=z.value; z.value=num2.replace(/^(.{5})/,"$1-"); document.execCommand("copy") },false);
Évite de créer des variables inutiles. Rien ne t'empêche d'enchaîner les méthodes sur un objet (tout ce que tu as à savoir, c'est quel type objet te renvoie une méthode et si tu peux utiliser la prochaine méthode sur ce type d'objet renvoyé):
machaine est de type string, tu peux lui appliquer la méthode String.prototype.replace() qui renvoie également un objet de type string auquel tu peux appliquer de nouveau la même méthode. Inutile donc de créer 150 variables pour faire ça, enchaîne les méthodes quand c'est possible.Code:let result = machaine.replace(/\s+/g, '').replace(/^(.{5})/, '$1-');
PS: il est possible de n'utiliser qu'une seule pattern pour faire les deux opérations, mais ce n'est pas un deal très intéressant car en contrepartie tu auras d'une part une pattern moins performante, et d'autre part un traitement du résultat plus complexe via une fonction en paramètre de remplacement de la méthode String.prototype.replace().