Repérer un caractere dans une chaine de caractere .. g un bug [RESOLU]

Repérer un caractere dans une chaine de caractere .. g un bug [RESOLU] - HTML/CSS - Programmation

Marsh Posté le 06-08-2002 à 12:06:34    

Code :
  1. else if(document.Formulaire.prodname_eng.value!=='')
  2. {
  3.      var a=document.Formulaire.prodname_eng.value;
  4.      var test="" + a;
  5.      for(var k = 0; k < test.length;k++)
  6.      {
  7.      var c = test.substring(k,k+1);
  8.      if(c == "\" )
  9.      { alert("Votre E-mail, Merci" ); }
  10.      }
  11. }
  12. else


 
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
Reply

Marsh Posté le 06-08-2002 à 12:06:34   

Reply

Marsh Posté le 06-08-2002 à 12:30:45    

:cry:

Reply

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


---------------
All we need is a soul revolution
Reply

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 ... :(


Message édité par kayasax le 06-08-2002 à 14:18:25

---------------
All we need is a soul revolution
Reply

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.

Reply

Marsh Posté le 06-08-2002 à 15:43:53    

t'es sur de ton code la?? moi ca marche pa :heink:  
<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.




Message édité par kayasax le 06-08-2002 à 16:00:17

---------------
All we need is a soul revolution
Reply

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!=='';)  :non:  
  {
         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.




Message édité par misterpinguin le 06-08-2002 à 15:52:21
Reply

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?

Reply

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  :heink:
y`aurais pas un truc genre pas le droit de faire un if(){ dans un else if(){ ?

Reply

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?




---------------
All we need is a soul revolution
Reply

Marsh Posté le 06-08-2002 à 16:40:28   

Reply

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_

Reply

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
}

Reply

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 :
  1. <script language="JavaScript">
  2. <!--
  3. function ControleVide()
  4. {
  5. if(document.Formulaire.prodname_eng.value=='')
  6. {
  7. alert('You must enter a product name (in english) !');
  8. document.Formulaire.prodname_eng.focus();
  9. }
  10. else if(document.Formulaire.prodname_eng.value!='')
  11. {
  12.      var a=document.Formulaire.prodname_eng.value;
  13.      var test="" + a;
  14.          for(var k = 0; k < test.length;k++)
  15.          {
  16.            var c = test.substring(k,k+1);
  17.            if(c == "\\" )
  18.      { alert("Caractere interdit" ); }
  19.      }
  20. }
  21. else  // Heu.. c`est celui la qui est ROUGE ;-)
  22. {document.Formulaire.method = "POST";
  23. document.Formulaire.action = "prodadd.php";
  24. document.Formulaire.submit();
  25. }
  26. else
  27. {
  28. document.Formulaire.method = "POST";
  29. document.Formulaire.action = "prodadd.php";
  30. document.Formulaire.submit();
  31. }
  32. }
  33. //-->
  34. </script>

j`ai du me gourer qq part?


Message édité par cybercouf le 06-08-2002 à 17:50:38
Reply

Marsh Posté le 06-08-2002 à 17:38:42    

ajouter des accolades pour ton premier else..

Reply

Marsh Posté le 06-08-2002 à 17:45:44    

du coup ca me fait une erreur..

Reply

Marsh Posté le 06-08-2002 à 17:46:35    

c'est quoi ton erreur ?

Reply

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

Reply

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

Reply

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  :D  belle erreure de logique, donc tu as parfaitement raison y`as un else de trop , merci de ton aide  :jap:  :hello:


Message édité par cybercouf le 06-08-2002 à 18:19:19
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed