Rechercher : dans
Par :

Comment remplacer un caractère en javascript

Dernière réponse le 10 nov 2008 à 16:37:37 Keanjyto, le 29 sep 2008 à 23:14:11 
 Signaler ce message aux modérateurs

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. "Qui aime bien châtie bien" : Windows XP devait vraiment m'adorer alors...
Configuration: Windows XP
Firefox 3.0.3

Meilleures réponses pour « Comment remplacer un caractère en javascript » dans :
Javascript - Les chaînes de caractères Voir Qu'est-ce qu'une chaîne de caractère Une chaîne de caractère est, comme son nom l'indique, une suite de caractères. On la représente par la suite de caractères encadrée par des guillemets simples (') ou doubles ("), sachant que les deux types de...
Les guillemets, apostrophes et les chaînes VoirComment jouer avec les guillemets et les apostrophes dans les chaînes 1. Préambule 2. Éviter une coupure dans la chaîne 3. Ajouter un guillemet dans la chaîne 3.1 Avec l'apostrophe 3.2 Avec l'ASCII 3.3 Directement 3.3.1 Méthode...
Supprimer les accents avec PHP VoirPour un tas de raisons, il est parfois utile de convertir un texte accentué en un texte sans accents. Voici une fonction permettant de transformer très simplement la quasi-totalité des accents en leur équivalent non-accentués : function...
Javascript - L'objet String VoirLes particularités de l'objet String string est un mot anglais qui signifie "chaîne", il s'agit en fait de chaîne de caractères. L'objet String est un objet qui contient un certain nombre de propriétés et de méthodes permettant la manipulation...
Javascript - L'objet Date VoirLes particularités de l'objet Date L'objet Date permet de travailler avec toutes les variables qui concernent les dates et la gestion du temps. Il s'agit d'un objet inclus de façon native dans Javascript, et que l'on peut toujours utiliser. La...
Javascript - L'objet RegExp VoirLes particularités de l'objet RegExp L'objet RegExp est un objet permettant de manipuler des expressions régulières, c'est-à-dire des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, afin de trouver des...

1

Archeus01, le 29 sep 2008 à 23:26:07

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 :
http://img401.imageshack.us/my.php?image=kanatk5.gif

Répondre à Archeus01

2

Keanjyto, le 29 sep 2008 à 23:32:02

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 : "http://img405.imageshack.us/my.php?image=kanaajw6.gif"

Cordialement,
Kenajyto. "Qui aime bien châtie bien" : Windows XP devait vraiment m'adorer alors...

Répondre à Keanjyto

3

Archeus01, le 29 sep 2008 à 23:37:43
  • +1

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?

Répondre à Archeus01

4

Keanjyto, le 29 sep 2008 à 23:40:43

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;". "Qui aime bien châtie bien" : Windows XP devait vraiment m'adorer alors...

Répondre à Keanjyto

5

Archeus01, le 30 sep 2008 à 00:00:14

Voila ta solution très largement inspiré de http://jesus2099.free.fr/blog/2005/07/test-en-ligne-dencodag­es-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>

Répondre à Archeus01

7

 el_gringo.yag, le 10 nov 2008 à 16:37:37

Et comment faire la même chose mais pour la page entière ?

Répondre à el_gringo.yag

6

Keanjyto, le 30 sep 2008 à 00:07:07
  • +1

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. "Qui aime bien châtie bien" : Windows XP devait vraiment m'adorer alors...

Répondre à Keanjyto