Bonjour,
J'ai le cas suivant :
Je récupère depuis ma base de données un texte qui peut contenir plusieurs espaces consécutifs, je le place dans la zone de texte d'une option d'un select html. Pour voir affichés tous les espaces, je dois remplacer ' ' par ' ' pour interprétation correcte par le navigateur (ici IE6).
Lorsque je clique sur la ligne de mon select (c'est un select multiple), le texte de l'option sélectionnée est recopié dans un champ textfield, pour édition.
A ce moment-là se pose mon problème : je veux utiliser une fonction javascript qui remplace les espaces consécutifs par un seul espace (lors du onkeyup sur ce textfield).
J'ai une fonction qui marche très bien tant que les espaces que je vois sur ma page correspondent à des espaces tapés par l'utilisateur (' ') mais en revanche ne marche pas si les espaces affichés ont été générés par ' '.
Voici ma fonction :
J'ai regardé, avec le débuggeur javascript de microsoft, à quoi correspondait en debug ma chaîne dans le option du select. A l'affichage je vois des espaces mais à la comparaison du caractère qui semble être un espace et de ' ' j'obtiens false.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 function formateChaineSuppDoublesEspaces(chaine) { var longueur = chaine.length; var resultat=""; for (var i = 0; i < longueur; i++) { var caractere = chaine.charAt(i); var caracterePrec = chaine.charAt(i-1); if(!(caractere == " " && caracterePrec == " ")) { resultat = resultat.concat(caractere); } } return resultat; }
Est-ce que quelqu'un a une idée du code caractère correspondant à à utiliser pour le test ?
Si je ne trouve pas, la solution sera d'utiliser des champs cachés avec pour valeur la chaîne issue de la base de données, sans remplacer ' ' par .
Merci pour vos lumières,
Barbara
Partager