[RESOLU] str_replace en javascript

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] str_replace en javascript

Re: [RESOLU] str_replace en javascript

par two3d » 21 déc. 2012, 00:24

oki, merci pour l'aide et joyeuses fêtes à tous ! 8-)

Re: [RESOLU] str_replace en javascript

par sadeq » 20 déc. 2012, 22:31

yes.

Re: [RESOLU] str_replace en javascript

par two3d » 20 déc. 2012, 21:43

sert à afficher le numéro (texte) si l'image correspondante n'est pas dans l'array ?

Re: [RESOLU] str_replace en javascript

par sadeq » 20 déc. 2012, 20:27

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: str_replace en javascript

par two3d » 20 déc. 2012, 17:41

Résultat sous IE: undefined :mrgreen:

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: str_replace en javascript

par two3d » 20 déc. 2012, 17:07

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

par sadeq » 20 déc. 2012, 16:41

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

par two3d » 20 déc. 2012, 16:05

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

par xTG » 20 déc. 2012, 14:52

[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

par two3d » 20 déc. 2012, 12:46

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

par xTG » 20 déc. 2012, 12:37

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

par two3d » 20 déc. 2012, 11:53

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

par two3d » 20 déc. 2012, 11:45

Merci mais ça ne fonctionne toujours pas

Re: str_replace en javascript

par sadeq » 20 déc. 2012, 10:50

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]

str_replace en javascript

par two3d » 19 déc. 2012, 15:34

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]