Extraction javascript

Résolu
enark78 Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   -  
enark78 Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, après plusieurs messages sans réponses depuis plusieurs jours, j'espère que cette fois-ci, quelqu'un me viendra en aide.
Voila mon petit problème. J'ai des fichiers joints dans une page et je dois sélectionner l'extension de ces fichiers pour l'insérer dans une url (afin d'afficher une icône de ce type).
J'y arrive lorsque l'extension ne comporte que 3 lettres comme c'est le cas pour la plupart des extensions mais je ne vois pas comment faire pour les extensions à 4 lettres (.docx) par exemple.
Posez moi des questions si je ne suis pas assez clair, merci.




12 réponses

Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

Pour que ce soit plus clair, peux-tu déjà nous dire comment tu fais pour le cas des extensions à trois lettres ?

Merci,

Xavier
0
enark78 Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   17
 
Et bien je prends simplement les 3 derniers lettres du fichiers joint que j'insère dans une variable. Comme mes icônes s'appellent Fichier_"extension".gif, je fais une concaténation entre l'url et ma variable contenant l'extension du fichier.
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Plutôt que de prendre les trois dernières lettres, tu devrais plutôt prendre tout ce qui suit le dernier point.

Tu peux utiliser la fonction match() avec une expression rationnelle, comme cela :

var expression = /.*\.(\w.+)$/;
expression.exec(nomFichier);
var extension = RegExp.$1;

Xavier
0
enark78 Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   17
 
Merci mais je ne vois pas comment adapter ton code avec le mien que voici:
var idx = viewEntry.getColumnValues().get(2);
var path = "/dossier/dossier/Fichier_" + (idx).right(3) + ".gif"
url.setPath(path);
url.removeAllParameters();
return url.toString();

Sinon je pensais mettre dans ma variable tous les termes qui suivent le ".", mais pareil, je ne vois pas trop comment faire d'autant plus que je développe sur un environnement particulier (lotus domino designer).
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
> var idx = viewEntry.getColumnValues().get(2);
Ça te donne quoi ça exactement ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
enark78 Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   17
 
"var idx =" je pense que tu comprends
pour le reste, ca enregistre les chaines de la 2eme colonne (en réalité c'est get(1)) d'un tableau "appelé"viewEntry. les chaines sont les noms de fichier.
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Non mais je ne veux pas savoir ce que ça fait, ça je le comprends ^^'
Je veux surtout savoir ce que contient exactement la variable idx au final.
Est-ce qu'elle contient quelque chose comme « document.docx » ?
0
enark78 Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   17
 
oui; exactement
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
OK, alors tu peux l'intégrer comme ça :


var idx = viewEntry.getColumnValues().get(2);

var expression = /.*\.(\w.+)$/;
expression.exec(idx);
var extension = RegExp.$1;

var path = "/dossier/dossier/Fichier_" + extension + ".gif"
url.setPath(path);
url.removeAllParameters();
return url.toString();

Xavier
0
enark78 Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   17
 
Ca ne m'affiche malheureusement rien...
0
enark78 Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   17
 
A la limite, je peux aussi me contenter de prendre les 3 premieres lettres de l'extension, ce qui m'arrangerait étant donné que les seules extensions que j'ai a traiter sont des docx, pptx ... donc j'utilise la même icône que pour les doc ou autres.
0
enark78 Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   17
 
personne ?
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Et si tu rajoutes alert(path); après mes modifs (et avant le return), ça donne quoi ?
0
enark78 Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   17
 
ca ne donne rien
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Même pas une boîte de dialogue vide ?
Et que dit la console d'erreur de Firefox ?
0
enark78 Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   17
 
Je viens de changer pour ce code qui me ressort 1 erreur :
var idx = viewEntry.getColumnValues().get(1);
var index = idx.indexOf(., 0);
var chaine.substr(index, 3);
var path = "/dossier/Fichier_" + chaine + ".gif"
url.setPath(path);
url.removeAllParameters();
return url.toString()
0
enark78 Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   17
 
en fait j'ai ca maintenant mais qui ne marche toujours pas:
var idx = viewEntry.getColumnValues().get(1);
var index = idx.lastIndexOf(".");
var chaine = idx.substring(index,index+2);
var path = "/dossier/Fichier_" + chaine + ".gif"
url.setPath(path);
url.removeAllParameters();
return url.toString();
0
enark78 Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   17
 
C'est bon, si certains sont interessés par la solution:

var idx = viewEntry.getColumnValues().get(1);
var index = idx.lastIndexOf(".");
var ext = idx.substr(index+1, 3);
var path = "/dossier/Fichier_" + ext + ".gif"
url.setPath(path);
url.removeAllParameters();
return url.toString();


merci quand même Reivax962
0