Javascript : chaine alphanumérique.

Fermé
magpie Messages postés 43 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 8 février 2012 - 11 déc. 2008 à 16:16
magpie Messages postés 43 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 8 février 2012 - 16 déc. 2008 à 18:11
Bonjour,

j'ai récup un moteur de recherche et modifié à ma sauce.

Il fonctionne correctement sauf lorsqu'une chaine contenant des chiffres est entrée.
Est ce que ça vient du typage, y a t-il une conversion a appliquer?

Quelle solution adopter ?

Merci.

4 réponses

magpie Messages postés 43 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 8 février 2012 14
15 déc. 2008 à 11:26
Personne n'a une idée ?
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328
15 déc. 2008 à 11:35
Bonjour Magpie,
Javascript est un langage faiblement typé, l'interpréteur jongle donc très facilement avec les types, en les castant quand il le faut.
En principe ta chaîne (qu'elle ne soit composée que de chiffres ou qu'elle en contienne) est bien de type chaîne et ne doit donc pas poser de problème.

Quand tu dis que ça ne fonctionne pas correctement, qu'entends-tu par là?
As-tu des erreurs explicite ou as-tu un comportement non-souhaité? Peux-tu nous montrer le code qui ne fonctionne pas comme tu le souhaites stp ?

Cordialement,
magpie Messages postés 43 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 8 février 2012 14
15 déc. 2008 à 12:16
Merci pour ta réponse.

En fait le moteur fonctionne en principe correctement sauf lorsque je rentre une valeur numérique,
je n'ai aucun résultat.

Par exemple si je rentre A4, pas de résultat. Mais si je rentre Documentation c'est bon.

the code :
var item = new Array();
...
c=c+1; item[c]=new Array("A4.htm","_blank","Documentation A4","A4 documents accès service",
"Accès aux documents de A4");
...

page="<html><head><title>Résultats de la recherche</title></head><body bgcolor='white' 
link='Blue' vlink='Blue' alink='yellow'><font face='Trebuchet MS' Size=2><center><table border=0 cellspacing=2>";

function search(frm) {

txt = frm.srchval.value.split(" ");
ligne1 = page + "<tr><td><font size=3><B>Pages trouvées pour \"" + txt + "\" :</B></font>
</td></tr>";
document.write(ligne1);
fnd = new Array(); total=0;
for (i = 0; i < item.length; i++) {
fnd[i] = 0; order = new Array(0, 4, 2, 3);
for (j = 0; j < order.length; j++)
for (k = 0; k < txt.length; k++)
if (item[i][order[j]].toLowerCase().indexOf(txt[k]) > -1 && txt[k] != "")
fnd[i] += (j+1);
}
for (i = 0; i < fnd.length; i++) {
n = 0; w = -1;
for (j = 0;j < fnd.length; j++)
if (fnd[j] > n) { n = fnd[j]; w = j; };

if (w > -1) total += show(w,n);
fnd[w] = 0;
}

document.write("</table><br>Pages trouvé(s): "+total+"<br></font></body></html>");

}
function show(which,num) {
link = item[which][0];

line = "<tr><td><font size=2>" + item[which][4] + " : ";

line +=  "<a href='"+link+"'>"+item[which][2]+"</a></font></td></tr>";

document.write(line);
return 1;
}
magpie Messages postés 43 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 8 février 2012 14
16 déc. 2008 à 18:11
Je remonte.