Je viens d'être confronté à un petit problème et il m'a fallu pas mal de temps pour trouver la solution.
Le problème est : identifier une chaîne avec un espace insécable en javascript.
En HTML l'espace insécable est matérialisé par la chaîne
Imaginons donc la ligne HTML suivante :
<p id="test">Coucou AFJV</p>
Je récupère le contenu en javascript :
var txt = document.getElementById('test').innerHTML;
txt devrait donc contenir "Coucou AFJV"
Et bien non : txt.includes(" AFJV") renvoie false.
En fait txt contient "Coucou AFJV", mais le caractère entre coucou et AFJV n'est pas un espace normal (ASCII 32), il s'agit du code ASCII 0160. Pour entrer ce caractère au clavier, tapez 0160 en maintenant la touche Alt enfoncée.
Pour tester si la chaîne " AFJV" est présente dans ma variable il faut donc entrer :
if (txt.includes(" AFJV") ...
en prenant soin de taper Alt+0160 et non pas "espace" avant AFJV
Jaja
12 mars 2022
Répondre
MP
Bonjour,
J'ai trouvé une solution pour des espaces en JS
On passe d'abord par l'HTML :
<p id = 'espace' hidden> </p>
Puis on transfère à JS :
<script>
var espace = document.getElementById('espace').innerText;
</script>
NB Je crois que innerHTML ne fonctionne pas avec cela renvoie ' '
Le problème est : identifier une chaîne avec un espace insécable en javascript.
En HTML l'espace insécable est matérialisé par la chaîne
Imaginons donc la ligne HTML suivante :
<p id="test">Coucou AFJV</p>
Je récupère le contenu en javascript :
var txt = document.getElementById('test').innerHTML;
txt devrait donc contenir "Coucou AFJV"
Et bien non : txt.includes(" AFJV") renvoie false.
En fait txt contient "Coucou AFJV", mais le caractère entre coucou et AFJV n'est pas un espace normal (ASCII 32), il s'agit du code ASCII 0160. Pour entrer ce caractère au clavier, tapez 0160 en maintenant la touche Alt enfoncée.
Pour tester si la chaîne " AFJV" est présente dans ma variable il faut donc entrer :
if (txt.includes(" AFJV") ...
en prenant soin de taper Alt+0160 et non pas "espace" avant AFJV