Bonjour,
j'ai le code suivant qui sert à convertir un numéro de sécu s'il est sans espace ou le contraire: supprimer les espaces s'ils sont détectés.
Cela fonctionne bien.
En revanche, j'aurais aimé que le résultat de la conversion se mette en mémoire vive mais cela ne fonctionne pas...
Voila le code ci dessous si quelqu un a une idée:
Code html : 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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Convertisseur </title>
</head>
<body>
 
<h2>Convertisseur</h2>
<label for="secuInput">Entrez votre numéro de secu :</label>
<input type="text" id="secuInput" oninput="formatsecuNumber()">
 
<div id="result"></div>
 
<script>
function formatsecuNumber() {
  // Récupère la valeur saisie dans le champ de texte
  let secuNumber = document.getElementById("secuInput").value;
  
  // Supprime tous les espaces de la saisie
  let secuNumberWithoutSpaces = secuNumber.replace(/\s/g, '');
  
  // Vérifie s'il y a des espaces dans le numéro saisi
  let hasSpaces = secuNumberWithoutSpaces.length !== secuNumber.length;
 
  let formattedsecuNumber;
 
  if (hasSpaces) {
    // S'il y a des espaces, stocke la valeur sans espaces en mémoire vive
    formattedsecuNumber = secuNumberWithoutSpaces;
  } else {
    // S'il n'y a pas d'espaces, formate la valeur avec les espaces nécessaires
    formattedsecuNumber = secuNumberWithoutSpaces.replace(/(\d{1})?(\d{2})?(\d{2})?(\d{2})?(\d{3})?(\d{3})?(\d{2})?/, function(match, p1, p2, p3, p4, p5, p6, p7) {
      // Construit le numéro avec les groupes de chiffres
      let result = '';
      if (p1) result += p1;
      if (p2) result += ' ' + p2;
      if (p3) result += ' ' + p3;
      if (p4) result += ' ' + p4;
      if (p5) result += ' ' + p5;
      if (p6) result += ' ' + p6;
      if (p7) result += ' ' + p7;
      return result.trim(); // Supprime les espaces en trop
    });
  }
  
  // Affiche le résultat dans la div avec l'id "result"
  document.getElementById("result").innerText = "Numéro de secu : " + formattedsecuNumber;
 
  // Stocke le résultat en mémoire vive
  sessionStorage.setItem("formattedsecuNumber", formattedsecuNumber);
  
  // Vide le champ de saisie
  document.getElementById("secuInput").value = "";
}
</script>
 
</body>
</html>