Comment remplacer un caractère en javascript

Résolu/Fermé
Utilisateur anonyme - 29 sept. 2008 à 23:14
 el_gringo.yag - 10 nov. 2008 à 16:37
Bonsoir,

voici mon problème : j'aimerai remplacer en javascript les caractères "&#" par leur équivalent "& amp;& #35;" dans une zone de texte lorsque l'on clique sur un autre texte. Pour cela, j'utilise replace() en javascript mais il ne marche pas. Voici mon code :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<title>Code UTF-8 des caractères japonais</title>

<script type="text/javascript">
function kana(caractere)
	{
	// On définit deux variables pour raccourcir la frappe par la suite
	var apercu = document.getElementById('apercu');
	var utf8 = document.getElementById('utf8');
	// On remet à zéro les zones de texte si la page vient d'être chargé et que l'on commence à saisir un kana
	if(utf8.value == "Ici le code UTF-8 des kana.")
		{
		apercu.value = utf8.value = '';
		}
	// On ajoute le kana dans l'aperçu
	apercu.value += caractere;
	// On remplace les caractères "&#" par "&amp;&#35;" pour pouvoir afficher les caractères du code UTF-8 du kana
	var regle = new RegExp(/&#/gi);
	var code_caractere = caractere.replace(regle, "&amp;&#35;")
	utf8.value += code_caractere;
	}
</script>

</head>

<body>
<div onclick="kana('&#12354;')">Faire apparaître "&#12354;"</div><br>
<textarea id="apercu" rows="3" cols="60" readonly lang="ja">Ici l'aperçu.</textarea>
<br><br>
<textarea id="utf8" rows="3" cols="40" readonly lang="fr">Ici le code UTF-8 des kana.</textarea>
</body>
</html>
Merci d'avance à tous ceux qui consacreront de leur temps pour m'aider.

Cordialement,
Keanjyto.

6 réponses

Archeus01
Messages postés
1566
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
23 mars 2020
435
29 sept. 2008 à 23:37
si tu rajoutes ce que j'ai mis en gras :
utf8.value += code_caractere;
utf8.value = escape(utf8.value);
}
</script>
tu as %u3042 qui apparait dans le texte area. Tu veux voir apparaitre quoi dans le textarea comme texte exactement?
1
Utilisateur anonyme
30 sept. 2008 à 00:07
J'ai un problème avec ce code, il m'affiche des ? à la place des caractères, mais je vais le modifier pour y remédier. Merci de m'avoir aidé, c'était très sympa.

Cordialement,
Keanjyto.

Edit : c'est bon, c'est parfait. Encore merci, ton aide me sauve (j'étais dessus depuis 3h ^^'). Bonne continuation.
1
Archeus01
Messages postés
1566
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
23 mars 2020
435
29 sept. 2008 à 23:26
Heu... J'ai testé et ça fait bien des kana.
Alors je n'ai pas vraiment compris ton POST. C'est quoi en fait ton problème?
(aperçu de ce que j'ai après avori cliqué ou il fallait :
https://imageshack.com/
0
Utilisateur anonyme
29 sept. 2008 à 23:32
Bonjour Archeus01,

je cherche à faire apparaître le code UTF-8 du caractère dans le second textarea (avec l'id "utf8"), en vain. Le problème vient du script javascript, mais je ne vois pas comment le modifier pour le faire marcher. Voir la capture : "https://imageshack.com/"

Cordialement,
Kenajyto.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
29 sept. 2008 à 23:40
J'ai mis une capture plus haut (j'ai édité le message) du résultat espéré : dans le second textarea, avoir "& #12354;" au lieu de "あ".

Ce n'est pas escape() car lui affiche les retour de chariot, etc. J'aimerai remplacer les "&" par son code UTF-8 "& amp;".
0
Archeus01
Messages postés
1566
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
23 mars 2020
435
30 sept. 2008 à 00:00
Voila ta solution très largement inspiré de http://jesus2099.free.fr/blog/2005/07/test-en-ligne-dencodages-en-php-et.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Code UTF-8 des caractères japonais</title>

<script type="text/javascript">
function conversionUnicode(texte) {
s= texte.substring(0, 255);
retour= s.replace(/(\w|\W)/g,
function(s, n) {
c= n.charCodeAt(0);
return((c == 38)? '&' : ((c > 127)? '&#'+c+';' : n));
/*return((c > 127)? '&#'+c+';' : n); - si pas besoin de remplacer & par &*/
}
);
return(retour);
}

function kana(caractere)
{
// On définit deux variables pour raccourcir la frappe par la suite
var apercu = document.getElementById('apercu');
var utf8 = document.getElementById('utf8');
// On remet à zéro les zones de texte si la page vient d'être chargé et que l'on commence à saisir un kana
if(utf8.value == "Ici le code UTF-8 des kana.")
{
apercu.value = utf8.value = '';
}
// On ajoute le kana dans l'aperçu
apercu.value += caractere;
// On remplace les caractères "&#" par "&#" pour pouvoir afficher les caractères du code UTF-8 du kana
var regle = new RegExp(/&#/gi);
var code_caractere = caractere.replace(regle, "&#")
utf8.value += conversionUnicode(code_caractere);
}
</script>

</head>

<body>
<div onclick="kana('あ')">Faire apparaître "あ"</div><br>
<textarea id="apercu" rows="3" cols="60" readonly lang="ja">Ici l'aperçu.</textarea>
<br><br>
<textarea id="utf8" rows="3" cols="40" readonly lang="fr">Ici le code UTF-8 des kana.</textarea>
</body>
</html>
0
el_gringo.yag
10 nov. 2008 à 16:37
Et comment faire la même chose mais pour la page entière ?
0