Menu

Espace insécable HTML ( ) en javascript

Photo Emmanuel
Emmanuel
28 août 2016
Répondre
MP
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&nbsp;AFJV</p>

Je récupère le contenu en javascript :
var txt = document.getElementById('test').innerHTML;

txt devrait donc contenir "Coucou&nbsp;AFJV"

Et bien non : txt.includes("&nbsp;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 "&nbsp;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
Photo Jaja
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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>

Puis on transfère à JS :

<script>
var espace = document.getElementById('espace').innerText;
</script>

NB Je crois que innerHTML ne fonctionne pas avec &nbsp; cela renvoie '&nbsp;'
  • Share
  • Follow