Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1598 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  JS:étrange résultats regex pour traiter les erreurs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

JS:étrange résultats regex pour traiter les erreurs

n°2217893
grosbin
OR die;
Posté le 28-01-2014 à 17:00:19  profilanswer
 

Bonjour j'ouvre ce post car je ne cerne pas bien le fonctionnement des regex en javascript
Je teste une fonction de traitement des erreurs, afin d'exclure les erreurs d'origine externe ..

 

Avec:

Code :
  1. var x="[3@ReferenceError:.Components.is.not.defined:resource://5657_socnet/api-utils/lib/cuddlefish.js.->.resource://5657_socnet/api-utils/lib/content/worker.js.->.resource://5657_socnet/api-utils/data/content-proxy.js]: 2£[3@ReferenceError:.Components.is.not.defined:resource://5657_socnet/api-utils/lib/cuddlefish.js.->.resource://5657_socnet/api-utils/lib/content/worker.js.->.resource://5657_socnet/api-utils/data/content-proxy.js]: 2£[@Script.error.:force-download.net/lib/plugin/1/do.js.phpi693804033-51387561-351482385-287123930-546380643-173500334-964834664]: 1£3@ReferenceError:.Components.is.not.defined:resource://5657_socnet/api-utils/lib/cuddlefish.js.->.resource://5657_socnet/api-utils/lib/content/worker.js.->.resource://5657_socnet/api-utils/data/content-proxy.js£[@ [object Event ]:]:£[@Script.error.:]:".split('£'),
  2. R=/resource:\/|edgecastcdn|force-download|-download|a\.curCSS|EfGoogleTracking|pop\.shpath\.net|browse\.phpu|injectScripts|superfish|websitelogon|Christmas|json|termin|racking|analytics|-dating|syndicatio|truncated|error|\.jpg/gi;
  3. for(var i in x){v=x[i];//v=v.replace(/@|\[|\]/gi,'');
  4.   REG=R.exec(v);console.log(v,REG);
  5. }


Notez que 1,2 et 4 sont les résultats issus de la même chaine ...
L'on voit sur la même chaine, la première fois, il voit "error", puis "resource:/", mais ne voit pas le "download" sur la 3ème, et à nouveau "error" sur la quatrième
     >>> capture écran console

 

Du coup, je suis un peu perdu pourquoi il ne voit pas "-download" sur la 3ème, et pourquoi les résultats diffèrent sur la même chaine..

 

Merci pour vos lumières  :jap:


Message édité par grosbin le 28-01-2014 à 17:01:51

---------------
Photos Panoramiques Montagnes Haute Savoie
mood
Publicité
Posté le 28-01-2014 à 17:00:19  profilanswer
 

n°2218024
MaybeEijOr​Not
but someone at least
Posté le 29-01-2014 à 14:38:57  profilanswer
 

À part le mot "bug" je ne vois pas...
 
Comme ceci ça fonctionne (je te mets un exemple car je ne sais pas si tu as bien compris que là tu ne récupères que la dernière occurrence)  :
 

Code :
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.   <title>Page d'essai</title>
  5.   <style type="text/css">
  6.   </style>
  7.   <script type="text/javascript">
  8.    function go() {
  9.     var x = "[3@ReferenceError:.Components.is.not.defined:resource://5657_socnet/api-utils/lib/cuddlefish.js.->.resource://5657_socnet/api-utils/lib/content/worker.js.->.resource://5657_socnet/api-utils/data/content-proxy.js]: 2£[3@ReferenceError:.Components.is.not.defined:resource://5657_socnet/api-utils/lib/cuddlefish.js.->.resource://5657_socnet/api-utils/lib/content/worker.js.->.resource://5657_socnet/api-utils/data/content-proxy.js]: 2£[@Script.error.:force-download.net/lib/plugin/1/do.js.phpi693804033-51387561-351482385-287123930-546380643-173500334-964834664]: 1£[3@ReferenceError:.Components.is.not.defined:resource://5657_socnet/api-utils/lib/cuddlefish.js.->.resource://5657_socnet/api-utils/lib/content/worker.js.->.resource://5657_socnet/api-utils/data/content-proxy.js]£[@ [object Event ]:]:£[@Script.error.:]:".split('£');
  10.     for(var i in x){
  11.      document.write("<b>Ligne "+i+":</b><br>"+x[i]+"<br><br>" );
  12.     }
  13.    document.write("<br>#########<b> RÉSULTAT </b>#########<br><br>" );
  14.    stk = "";
  15.    tab = new Array();
  16.    tab[0] = "<u>les derniers caractères trouvés :</u> ";
  17.    tab["index"] = "<u>position de départ :</u> ";
  18.    tab["input"] = "<u>input :</u> ";
  19.     for(var j in x){
  20.      REG = /resource:\/|edgecastcdn|force-download|-download|a\.curCSS|EfGoogleTracking|pop\.shpath\.net|browse\.phpu|injectScripts|superfish|websitelogon|Christmas|json|termin|racking|analytics|-dating|syndicatio|truncated|error|\.jpg/gi.exec(x[j]);
  21.      for(var k in REG){
  22.       stk = stk+tab[k]+REG[k]+"<br>";
  23.      }
  24.      document.write("<b>Ligne "+j+" :</b><br>"+stk+"<br>" );
  25.      stk = "";
  26.     }
  27.    }
  28.   </script>
  29. </head>
  30. <body onLoad="go();">
  31. </body>
  32. </html>


 
Dans ce cas ça fonctionne car je n'ai pas définit le regex dans une variable, si je le mets dans une variable ça déconne, aucune idée du pourquoi.


Message édité par MaybeEijOrNot le 29-01-2014 à 14:42:34
n°2218028
grosbin
OR die;
Posté le 29-01-2014 à 15:13:29  profilanswer
 

Hé bien, simplement le flag "g" à retirer et cela fonctionne à merveille
 
Si j'utilisait un replace, je pense que ce flag serait utile à retirer toutes les occurences, à tester


---------------
Photos Panoramiques Montagnes Haute Savoie
n°2218030
MaybeEijOr​Not
but someone at least
Posté le 29-01-2014 à 15:42:27  profilanswer
 

Ben il serait utile si tu utilisais des parenthèses dans ton regex.
 
 
EDIT : autrement si tu veux tester des regex il y a plusieurs sites qui proposent de le faire, tu tapes "tester regex javascript" (ou un équivalent en anglais) sur google et tu devrais trouver des choses.


Message édité par MaybeEijOrNot le 29-01-2014 à 15:44:19

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  JS:étrange résultats regex pour traiter les erreurs

 

Sujets relatifs
injection dans fichier .JSIntégrer un fond d'écran HTML5 / JS à WordPress
client IMAP en JS ou jQuery?[HTML/JS] Créer et télécharger un fichier CSV avec ie
[Résolu][JS] Cannot read property 'firstChild' of nullGreasemonkey, traiter les données d'un tableau
[PHP / JS] jquery file upload : retrouver nom du fichier uploadé ?[PHP/JS]Envoyer contenu d'une cellule via XMLHttpRequest
Erreurs forumremplir un tableau HTML avec des variables JS
Plus de sujets relatifs à : JS:étrange résultats regex pour traiter les erreurs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR