Extraction javascript

Résolu/Fermé
enark78 Messages postés 417 Date d'inscription mardi 2 février 2010 Statut Membre Dernière intervention 12 juillet 2012 - 14 janv. 2011 à 10:23
enark78 Messages postés 417 Date d'inscription mardi 2 février 2010 Statut Membre Dernière intervention 12 juillet 2012 - 14 janv. 2011 à 14:52
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 jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
14 janv. 2011 à 10:36
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 mardi 2 février 2010 Statut Membre Dernière intervention 12 juillet 2012 17
14 janv. 2011 à 10:40
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 jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
14 janv. 2011 à 11:01
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 mardi 2 février 2010 Statut Membre Dernière intervention 12 juillet 2012 17
14 janv. 2011 à 11:07
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 jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
14 janv. 2011 à 11:11
> 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 mardi 2 février 2010 Statut Membre Dernière intervention 12 juillet 2012 17
14 janv. 2011 à 11:18
"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 jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
14 janv. 2011 à 11:24
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 mardi 2 février 2010 Statut Membre Dernière intervention 12 juillet 2012 17
14 janv. 2011 à 11:28
oui; exactement
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
14 janv. 2011 à 11:32
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 mardi 2 février 2010 Statut Membre Dernière intervention 12 juillet 2012 17
14 janv. 2011 à 11:40
Ca ne m'affiche malheureusement rien...
0
enark78 Messages postés 417 Date d'inscription mardi 2 février 2010 Statut Membre Dernière intervention 12 juillet 2012 17
14 janv. 2011 à 11:46
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 mardi 2 février 2010 Statut Membre Dernière intervention 12 juillet 2012 17
14 janv. 2011 à 13:03
personne ?
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
14 janv. 2011 à 14:10
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 mardi 2 février 2010 Statut Membre Dernière intervention 12 juillet 2012 17
14 janv. 2011 à 14:20
ca ne donne rien
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
14 janv. 2011 à 14:24
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 mardi 2 février 2010 Statut Membre Dernière intervention 12 juillet 2012 17
14 janv. 2011 à 14:33
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 mardi 2 février 2010 Statut Membre Dernière intervention 12 juillet 2012 17
14 janv. 2011 à 14:40
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 mardi 2 février 2010 Statut Membre Dernière intervention 12 juillet 2012 17
14 janv. 2011 à 14:52
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