Page 1 sur 1
str_replace en javascript
Posté : 19 déc. 2012, 15:34
par two3d
Bonjour,
je cherche à remplacer des numéro par des images correspondante
exemple: le numéro 12 sera au final:
<img src="1.png"><img src="2.png">
J'ai fait ce code avec tout ce que j'ai pu trouvé sur le web mais il ne fonctionne pas:
[javascript]<script type="text/javascript">
var img = new Array(10);
img[0] = '<img src="0.png" alt="0" />';
img[1] = '<img src="1.png" alt="1" />';
img[2] = '<img src="2.png" alt="2" />';
img[3] = '<img src="3.png" alt="3" />';
img[4] = '<img src="4.png" alt="4" />';
img[5] = '<img src="5.png" alt="5" />';
img[6] = '<img src="6.png" alt="6" />';
img[7] = '<img src="7.png" alt="7" />';
img[8] = '<img src="8.png" alt="8" />';
img[9] = '<img src="9.png" alt="9" />';
var num = new Array(10);
num[0] = 0;
num[1] = 1;
num[2] = 2;
num[3] = 3;
num[4] = 4;
num[5] = 5;
num[6] = 6;
num[7] = 7;
num[8] = 8;
num[9] = 9;
function replace_numero(numero) {
t = numero.length;
j = 0;
while(j<t) {
var bru = num[j];
var rep = num[j];
myString = myString.replace(bru, rep);
j++;
}
return myString;
}
</script>[/javascript]
Re: str_replace en javascript
Posté : 20 déc. 2012, 10:50
par sadeq
Bonjour,
Une erreur dans : var rep = num[j]; il faut utiliser le tableau img au lieu de num. Correction:
[javascript]function replace_numero(numero) {
t = numero.length;
j = 0;
while(j<t) {
var bru = num[j]; //numero
var rep = img[j]; //image
myString = myString.replace(bru, rep);
j++;
}
return myString;
}[/javascript]
Re: str_replace en javascript
Posté : 20 déc. 2012, 11:45
par two3d
Merci mais ça ne fonctionne toujours pas
Re: str_replace en javascript
Posté : 20 déc. 2012, 11:53
par two3d
le navigateur IE me marque cette erreur:
Code : Tout sélectionner
Détails de l’erreur de la page Web
Agent utilisateur : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
Horodateur : Thu, 20 Dec 2012 09:51:43 UTC
Message : Erreur de syntaxe
Ligne : 165
Caractère : 2
Code : 0
Message : Objet attendu
Ligne : 22
Caractère : 1
Code : 0
EDIT: je n'ai plus d'erreur mais j'ai le message "undefined" qui s'affiche, voici mon code:
[javascript] var image = new Array(10);
image[0] = 'a';
image[1] = 'b';
image[2] = 'c';
image[3] = 'd';
image[4] = 'e';
image[5] = 'f';
image[6] = 'g';
image[7] = 'h';
image[8] = 'i';
image[9] = 'j';
var num = new Array(10);
num[0] = 0;
num[1] = 1;
num[2] = 2;
num[3] = 3;
num[4] = 4;
num[5] = 5;
num[6] = 6;
num[7] = 7;
num[8] = 8;
num[9] = 9;
function replace_numero(numero) {
var t = numero.length;
var j = 0;
var myString;
while(j<t) {
var bru = num[j]; //numero
var rep = image[j]; //image
myString = myString.replace(bru, rep);
j++;
}
return myString;
}[/javascript]
PS: j'ai mis des lettres le temps du debugage
Re: str_replace en javascript
Posté : 20 déc. 2012, 12:37
par xTG
Ton replace est à l'envers et myString pointe sur du vide...
Voici une version correcte :
[javascript] var image = new Array(10);
image[0] = 'a';
image[1] = 'b';
image[2] = 'c';
image[3] = 'd';
image[4] = 'e';
image[5] = 'f';
image[6] = 'g';
image[7] = 'h';
image[8] = 'i';
image[9] = 'j';
var num = new Array(10);
num[0] = 0;
num[1] = 1;
num[2] = 2;
num[3] = 3;
num[4] = 4;
num[5] = 5;
num[6] = 6;
num[7] = 7;
num[8] = 8;
num[9] = 9;
function replace_numero(numero) {
var t = numero.length;
var j = 0;
var myString = numero;
while(j<t) {
var bru = num[j]; //numero
var rep = image[j]; //image
myString = myString.replace(rep, bru);
j++;
}
return myString;
}
alert(replace_numero("abcde"));[/javascript]
01234
Re: str_replace en javascript
Posté : 20 déc. 2012, 12:46
par two3d
merci pour ce coup de pouce mais en fait c'est l'inverse que je souhaite (numéro vers image)
voici mon code (qui affiche les numéro mais pas les lettres...):
[javascript]function replace_numero(numero) {
var t = numero.lenthg;
var j = 0;
var myString = numero;
for(j;j<=t;j++) {
var bru = num[j]; //numero
var rep = image[j]; //image
myString = myString.replace(rep, bru);
//j++;
}
return myString;
}[/javascript]
appelle à la function: replace_numero(54545) (n'importe quel numéro)
EDIT: return t; me retourne undefined
Re: str_replace en javascript
Posté : 20 déc. 2012, 14:52
par xTG
[javascript] var image = new Array(10);
image[0] = 'a';
image[1] = 'b';
image[2] = 'c';
image[3] = 'd';
image[4] = 'e';
image[5] = 'f';
image[6] = 'g';
image[7] = 'h';
image[8] = 'i';
image[9] = 'j';
var num = new Array(10);
num[0] = 0;
num[1] = 1;
num[2] = 2;
num[3] = 3;
num[4] = 4;
num[5] = 5;
num[6] = 6;
num[7] = 7;
num[8] = 8;
num[9] = 9;
function replace_numero(numero) {
var t = numero.length;
var j = 0;
var myString = numero;
while(j<t) {
var bru = num[j]; //numero
var rep = image[j]; //image
myString = myString.replace(bru, rep);
j++;
}
return myString;
}
alert(replace_numero("01234"));
[/javascript]
abcde
NB : length et non lenthg
Re: str_replace en javascript
Posté : 20 déc. 2012, 16:05
par two3d
Merci mais ça me retourne toujours en chiffre et pas en lettre:
j'utilise mon code comme ceci:
....innerHTML = replace_numero(seconde)
c'est un compteur qui se met à jour toutes les secondes
innerHTML = replace_numero(seconde) m'affiche les secondes mais pas de lettres

Re: str_replace en javascript
Posté : 20 déc. 2012, 16:41
par sadeq
Salut, je viens de comprendre ce que tu veux faire : remplacer plusieurs chiffres par leurs images d'un coup.
Voici la correction:
[javascript]<script type="text/javascript">
var images = new Array(10);
images[0] = '<img src="0.png" alt="0" />';
images[1] = '<img src="1.png" alt="1" />';
images[2] = '<img src="2.png" alt="2" />';
images[3] = '<img src="3.png" alt="3" />';
images[4] = '<img src="4.png" alt="4" />';
images[5] = '<img src="5.png" alt="5" />';
images[6] = '<img src="6.png" alt="6" />';
images[7] = '<img src="7.png" alt="7" />';
images[8] = '<img src="8.png" alt="8" />';
images[9] = '<img src="9.png" alt="9" />';
function replace_numero(numero) {
taille = numero.length;
myString = '';
j = 0;
while(j<taille) {
var n = parseInt(numero[j]);
var rep = (!isNaN(n)&&n>=0&&n<=9) ? images[n] : numero[j];
myString += rep;
j++;
}
return myString;
}
</script>
<div onclick="this.innerHTML=replace_numero(this.innerHTML)">20/12/2012 23:59:59</div>[/javascript]
Re: str_replace en javascript
Posté : 20 déc. 2012, 17:07
par two3d
Merci, on vas y arriver.
Le code ne fonctionne pas si je l'utilise de cette manière:
<div onclick="this.innerHTML=replace_numero(1585)">20/12/2012 23:59:59</div>
Pourquoi ?
EDIT: j'ai trouvé; suffit de rajouter des apostrophe.
Merci beaucoup pour votre aide
Re: str_replace en javascript
Posté : 20 déc. 2012, 17:41
par two3d
Résultat sous IE: undefined
J'ai réussi:
[javascript]function replace_numero(numero) {
taille = numero.length;
myString = '';
j = 0;
while(j<taille) {
var n = parseInt(numero.substring(j,j+1),10);
//var n = parseInt(numero[j],10);
var rep = (!isNaN(n)&&n>=0&&n<=9) ? images[n] : numero[j];
myString += rep;
j++;
}
return myString;
}[/javascript]
j'ai remplacé la ligne:
[javascript]var n = parseInt(numero[j],10);[/javascript]
par
[javascript]var n = parseInt(numero.substring(j,j+1),10);[/javascript]
Re: [RESOLU] str_replace en javascript
Posté : 20 déc. 2012, 20:27
par sadeq
Très bien.
Il faut aussi remplacer le deuxième numero[j] dans la valeur de rep:
[javascript]function replace_numero(numero) {
taille = numero.length;
myString = '';
j = 0;
while(j<taille) {
var valeur = numero.substring(j,j+1);
var n = parseInt( valeur ,10);
var rep = (!isNaN(n)&&n>=0&&n<=9) ? images[n] : valeur;
myString += rep;
j++;
}
return myString;
}[/javascript]
Re: [RESOLU] str_replace en javascript
Posté : 20 déc. 2012, 21:43
par two3d
sert à afficher le numéro (texte) si l'image correspondante n'est pas dans l'array ?
Re: [RESOLU] str_replace en javascript
Posté : 20 déc. 2012, 22:31
par sadeq
yes.
Re: [RESOLU] str_replace en javascript
Posté : 21 déc. 2012, 00:24
par two3d
oki, merci pour l'aide et joyeuses fêtes à tous !
