Repérer un caractere dans une chaine de caractere .. g un bug [RESOLU] - HTML/CSS - Programmation
Marsh Posté le 06-08-2002 à 14:04:06
désolé je n'arrive pas a descpecialier le "\" en js
sinon avec ce code tu peux rechercher "\ "
<script language="JavaScript">
<!--
var chaine="coucou c\a va?";
var search='\ ';
for(i=0;i<=chaine.length;i++)
{
if(chaine.charAt(i)==search)
{alert('caractere detecte';}
}
//-->
</script>
en PHP je sais que pour despecialiser le \ il faut utiliser [\\] mais ca marche po en JS
Marsh Posté le 06-08-2002 à 14:17:56
j'ai trouvé ca http://www.laltruiste.com/coursjav [...] ctere.html mais meme en recherchant le code hexa de \ ca marche po ...
Marsh Posté le 06-08-2002 à 15:08:07
Je te propose de remplacer directement ta boucle for par le if :
else if(document.Formulaire.prodname_eng.value!==''
{
var a=document.Formulaire.prodname_eng.value;
var test="" + a;
if(test.indexOf("\\" ) > 0)
{ alert("Votre E-mail, Merci" ); }
}
}
else
dans le indexOf, je test sur 2 backslashs consécutifs, comme en PHP.
Marsh Posté le 06-08-2002 à 15:43:53
t'es sur de ton code la?? moi ca marche pa
<script language="JavaScript">
<!--
var chaine="coucou c \ a va?";
if(chaine.indexOf("\\" ) > 0)
{ alert('Votre E-mail Merci'; }
//-->
</script>
_Mac_ a écrit a écrit : Je te propose de remplacer directement ta boucle for par le if : else if(document.Formulaire.prodname_eng.value!=='' { var a=document.Formulaire.prodname_eng.value; var test="" + a; if(test.indexOf("\\" ) > 0) { alert("Votre E-mail, Merci" ); } } } else dans le indexOf, je test sur 2 backslashs consécutifs, comme en PHP. |
Marsh Posté le 06-08-2002 à 15:52:06
_Mac_ a écrit a écrit : Je te propose de remplacer directement ta boucle for par le if : else if(document.Formulaire.prodname_eng.value!=='' { var a=document.Formulaire.prodname_eng.value; var test="" + a; if(test.indexOf("\\" ) > 0) { alert("Votre E-mail, Merci" ); } } } else dans le indexOf, je test sur 2 backslashs consécutifs, comme en PHP. |
Marsh Posté le 06-08-2002 à 16:28:16
héhé bien vu le pingouin
donc !== pour différent c`est faux? c`est fort possible que je me soit gouré car je ne savait pas quelle était la syntax pour diférent de, donc j`ai mis un ! devant un peu comme en php.
mais donc c`est quoi la bonne syntaxe?
Marsh Posté le 06-08-2002 à 16:36:54
en tout cas meme si je mets juste == j`ai toujours l`erreur idem avec le code de _mac_ bizard
y`aurais pas un truc genre pas le droit de faire un if(){ dans un else if(){ ?
Marsh Posté le 06-08-2002 à 16:40:28
la bonne syntaxe c'est !=
mais la ou tu vas avoir un pb c'est pour ton test :
if(c == "\" )
-> il va te mettre chaine non terminee ...
cybercouf a écrit a écrit : héhé bien vu le pingouin donc !== pour différent c`est faux? c`est fort possible que je me soit gouré car je ne savait pas quelle était la syntax pour diférent de, donc j`ai mis un ! devant un peu comme en php. mais donc c`est quoi la bonne syntaxe? |
Marsh Posté le 06-08-2002 à 17:17:35
hum ok, en effet si je remplace / par une lettre il detecte bien la lettre
par contre je vois pas comment lui faire avaler le / !!
je pense que c`est le meme pb avec le code de _mac_
Marsh Posté le 06-08-2002 à 17:25:31
Tiens ca, ca marche...
function PasDAntiSlash(MaChaine)
{
var tab=MaChaine.match(/\\/)
if (tab==null)
return false
else
return true
}
Marsh Posté le 06-08-2002 à 17:35:54
ok, finalement ca marches en mettant "//" a la place de "/", en fait c normal je viens de lire le truc sur les caracteres spéciaux, comme /" veux dire guillemet c pour ca, et // correspondant a l`anti slash ca marches
par contre si il ne repere pas de / dans la chaine il ne veux pas continuer et executer le else suivant
Code :
|
j`ai du me gourer qq part?
Marsh Posté le 06-08-2002 à 17:49:49
j`ai mis a jour le code au dessus pour mieux voire l`ensemble,
donc si je rajoute de { } apres le else qui est au dessus du else rouge ben ca me mets l`erreur "syntax error" et le debugger me pointe le else rouge
Marsh Posté le 06-08-2002 à 17:55:19
function ControleVide()
{
if(document.Formulaire.prodname_eng.value==''
{
alert('You must enter a product name (in english) !';
document.Formulaire.prodname_eng.focus();
}
else
{
if(document.Formulaire.prodname_eng.value!=''
{
var a=document.Formulaire.prodname_eng.value;
var test="" + a;
for(var k = 0; k < test.length;k++)
{
var c = test.substring(k,k+1);
if(c == "\\" )
{alert("Caractere interdit" ); }
}
}
else // Heu.. c`est celui la qui est ROUGE ;-)
{document.Formulaire.method = "POST";
document.Formulaire.action = "prodadd.php";
document.Formulaire.submit();
}
}
}
et comme ca , ca plante ?
PS : tu avais un else en trop je pense
Marsh Posté le 06-08-2002 à 18:13:53
en remettant les { } ou il faut ca marches mais il veux plus poster a la fin.
---ajout suite a une reflexion---
ha je viens de piger mon erreur, ce que je t fillé n`est q`un extrait et en fait y`as plus de else que ca car je vérifie d`autres champs que prodname_eng, du coup avec tout ces embrications je me suis planté a la fin, j`ai mis
else { if(document.Formulaire.prodname_eng.value!=''
{ ... }
else { document.Formulaire.method = "POST";
donc quand ma variable est non vide il ne vas pas poster le forumulaire belle erreure de logique, donc tu as parfaitement raison y`as un else de trop , merci de ton aide
Marsh Posté le 06-08-2002 à 12:06:34
c`est a l`intérieur de ma fonction qui vérifie mon formulaire avant de l`envoyer, et donc je veux voire si la variable prodname_eng contient ou pas le caractere antslash / mais le code tel quel ne fonctinne pas
Message édité par cybercouf le 06-08-2002 à 19:10:23