doubler ou transformer les anti slash dans une string d'un input
18 réponses
Jean-Charles Gibier
Hello
Je suis confronté à un petit pb js
Dans mon script chargé j'ai ceci :
var val = "C:\home\unrepertoire\unautre\unfichier";
element.value = val;
dans le formulaire, l'input text qui correspond à 'element' affiche
évidement un truc du genre :
"C:homeunrepertoireunautreunfichier"
J'ai beau y aller à grand coups de replace je ne peut ni doubler ni
transformer les '\' de ma chaîne.
Je suppose que les '\' sont interprétés avant l'affectation.
Comment résoudre ce pb en restant avec javascript (du côté client donc).
J'ajoute : Le problème est plus complexe qu'il n'y paraît dans la mesure ou je voudrais que les antislash's ne soient pas interprétés avant d'être affectés à val. Je ne sais pas si c'est possible (en fait c'est la réponse que je souhaite) mais sans vouloir abuser j'aimerai éviter les réponses lapidaires du style "string.replace() point/barre" ... du moins sans les avoir testées dans les conditions que j'expose.
Cette dernière phrase me choque pour le moins :
Allons il ne faut pas s'enflammer pour si peu. Je ne sais pas si vous avez remarqué que la première réponse était un peu lapidaire. Je fais juste gagner du temps à tout le monde en éludant celles du même tonneau.
vous arrivez ici avec
une question en donnant le minimum d'éléments, et vous vous permettez d'exiger des réponses testées et adaptées parfaitement à votre besoin ?
Je n'exige rien: la formule *sans vouloir abuser* était sincère. J'ai donné tous les éléments nécessaires et même avancé des éléments de réponse qui se sont avérés exact d'après mon interlocuteur.
Avez-vous testé le replace ?
C'est indiqué dans mon post initial. Je (me) cite : "J'ai beau y aller à grand coups de replace je ne peut ni doubler ni transformer les '' de ma chaîne."
Qu'est-ce que cela donne ?
Ben rien justement, l'antislash étant un méta caractère par excellence il n'y a pas moyen de préserver les '' une fois qu'ils sont lus par le browser. Vous saisissez le truc ?
Jean-Charles Gibier wrote:
var val = "C:\home\unrepertoire\unautre\unfichier";
J'ajoute :
Le problème est plus complexe qu'il n'y paraît dans la mesure ou je
voudrais que les antislash's ne soient pas interprétés avant d'être
affectés à val. Je ne sais pas si c'est possible (en fait c'est la
réponse que je souhaite) mais sans vouloir abuser j'aimerai éviter les
réponses lapidaires du style "string.replace() point/barre" ... du
moins sans les avoir testées dans les conditions que j'expose.
Cette dernière phrase me choque pour le moins :
Allons il ne faut pas s'enflammer pour si peu.
Je ne sais pas si vous avez remarqué que la première réponse était un
peu lapidaire. Je fais juste gagner du temps à tout le monde en éludant
celles du même tonneau.
vous arrivez ici avec
une question en donnant le minimum d'éléments, et vous vous permettez
d'exiger des réponses testées et adaptées parfaitement à votre besoin ?
Je n'exige rien: la formule *sans vouloir abuser* était sincère.
J'ai donné tous les éléments nécessaires et même avancé des éléments de
réponse qui se sont avérés exact d'après mon interlocuteur.
Avez-vous testé le replace ?
C'est indiqué dans mon post initial. Je (me) cite :
"J'ai beau y aller à grand coups de replace je ne peut ni doubler ni
transformer les '' de ma chaîne."
Qu'est-ce que cela donne ?
Ben rien justement, l'antislash étant un méta caractère par excellence
il n'y a pas moyen de préserver les '' une fois qu'ils sont lus par le
browser. Vous saisissez le truc ?
J'ajoute : Le problème est plus complexe qu'il n'y paraît dans la mesure ou je voudrais que les antislash's ne soient pas interprétés avant d'être affectés à val. Je ne sais pas si c'est possible (en fait c'est la réponse que je souhaite) mais sans vouloir abuser j'aimerai éviter les réponses lapidaires du style "string.replace() point/barre" ... du moins sans les avoir testées dans les conditions que j'expose.
Cette dernière phrase me choque pour le moins :
Allons il ne faut pas s'enflammer pour si peu. Je ne sais pas si vous avez remarqué que la première réponse était un peu lapidaire. Je fais juste gagner du temps à tout le monde en éludant celles du même tonneau.
vous arrivez ici avec
une question en donnant le minimum d'éléments, et vous vous permettez d'exiger des réponses testées et adaptées parfaitement à votre besoin ?
Je n'exige rien: la formule *sans vouloir abuser* était sincère. J'ai donné tous les éléments nécessaires et même avancé des éléments de réponse qui se sont avérés exact d'après mon interlocuteur.
Avez-vous testé le replace ?
C'est indiqué dans mon post initial. Je (me) cite : "J'ai beau y aller à grand coups de replace je ne peut ni doubler ni transformer les '' de ma chaîne."
Qu'est-ce que cela donne ?
Ben rien justement, l'antislash étant un méta caractère par excellence il n'y a pas moyen de préserver les '' une fois qu'ils sont lus par le browser. Vous saisissez le truc ?
Jean-Charles Gibier
Jean-Charles Gibier wrote:
Est ce que c'est faisable en JS (si oui comment) ?
je n'y suis pas parvenu avec un "bête" :
val.split(//).join(""); qui me retourne comme vous val sans les back-slash.
Ou suis je condamné à modifier le script qui envoie la page ?
je pense que oui, c'est tjs mieux d'opérer à la source...
Est ce que c'est faisable en JS (si oui comment) ?
je n'y suis pas parvenu avec un "bête" :
val.split(//).join(""); qui me retourne comme vous val sans les back-slash.
Ou suis je condamné à modifier le script qui envoie la page ?
je pense que oui, c'est tjs mieux d'opérer à la source...
Bon ben c'est fait.
Jean-Charles Gibier
Jean-Charles Gibier wrote:
var val = "C:homeunrepertoireunautreunfichier";
sans vouloir abuser j'aimerai éviter les réponses lapidaires du style "string.replace() point/barre" ... du moins sans les avoir testées dans les conditions que j'expose.
Cette dernière phrase me choque pour le moins : vous arrivez ici avec une question en donnant le minimum d'éléments, et vous vous permettez d'exiger des réponses testées et adaptées parfaitement à votre besoin ?
Ça c'est bien vrai ! On se demande bien quel peut être l'intéret d'avoir le path d'un fichier vers un disque-dur de Windows ... ! ?
Sarcasme ou suspicion ? Parce que dans le cadre d'un paramétrage logiciel par intranet je vous assure que la question ne se pose même pas.
Avez-vous testé le replace ? Qu'est-ce que cela donne ?
Il n'y a rien à tester : la valeur d'une variable comme par esemple : text = "machinntruc"; si innerHTMLée dans un <pre> devrait donner machin truc
Voilà.
Dans l'exemple donné aucun des antislash n'est associé à un caractère spécial, c'est donc le caractère 'normal' qui est retenu. On pourra faire tous les replace qu'on veut : y a rien à remplacer sauf peut-être si on a l'antislash en échapé '' ce qui résoudra d'office le blème.
Et donc ça se règle du côté serveur... ça faisait aussi partie de ma question.
Et encore une fois : merci au concepteur de Windows ...
Pourquoi Windows ? C'est un problème (feature, particularité ...) du standard ECMA ça non ?
Jean-Charles Gibier wrote:
var val = "C:\home\unrepertoire\unautre\unfichier";
sans vouloir abuser j'aimerai éviter les réponses lapidaires du style
"string.replace() point/barre" ... du moins sans les avoir testées
dans les conditions que j'expose.
Cette dernière phrase me choque pour le moins : vous arrivez ici avec
une question en donnant le minimum d'éléments, et vous vous permettez
d'exiger des réponses testées et adaptées parfaitement à votre besoin ?
Ça c'est bien vrai !
On se demande bien quel peut être l'intéret d'avoir le path d'un fichier
vers un disque-dur de Windows ... ! ?
Sarcasme ou suspicion ?
Parce que dans le cadre d'un paramétrage logiciel par intranet je vous
assure que la question ne se pose même pas.
Avez-vous testé le replace ? Qu'est-ce que cela donne ?
Il n'y a rien à tester :
la valeur d'une variable comme par esemple :
text = "machinntruc";
si innerHTMLée dans un <pre> devrait donner
machin
truc
Voilà.
Dans l'exemple donné aucun des antislash n'est associé à un caractère
spécial, c'est donc le caractère 'normal' qui est retenu.
On pourra faire tous les replace qu'on veut : y a rien à remplacer
sauf peut-être si on a l'antislash en échapé '\'
ce qui résoudra d'office le blème.
Et donc ça se règle du côté serveur... ça faisait aussi partie de ma
question.
Et encore une fois : merci au concepteur de Windows ...
Pourquoi Windows ?
C'est un problème (feature, particularité ...) du standard ECMA ça non ?
sans vouloir abuser j'aimerai éviter les réponses lapidaires du style "string.replace() point/barre" ... du moins sans les avoir testées dans les conditions que j'expose.
Cette dernière phrase me choque pour le moins : vous arrivez ici avec une question en donnant le minimum d'éléments, et vous vous permettez d'exiger des réponses testées et adaptées parfaitement à votre besoin ?
Ça c'est bien vrai ! On se demande bien quel peut être l'intéret d'avoir le path d'un fichier vers un disque-dur de Windows ... ! ?
Sarcasme ou suspicion ? Parce que dans le cadre d'un paramétrage logiciel par intranet je vous assure que la question ne se pose même pas.
Avez-vous testé le replace ? Qu'est-ce que cela donne ?
Il n'y a rien à tester : la valeur d'une variable comme par esemple : text = "machinntruc"; si innerHTMLée dans un <pre> devrait donner machin truc
Voilà.
Dans l'exemple donné aucun des antislash n'est associé à un caractère spécial, c'est donc le caractère 'normal' qui est retenu. On pourra faire tous les replace qu'on veut : y a rien à remplacer sauf peut-être si on a l'antislash en échapé '' ce qui résoudra d'office le blème.
Et donc ça se règle du côté serveur... ça faisait aussi partie de ma question.
Et encore une fois : merci au concepteur de Windows ...
Pourquoi Windows ? C'est un problème (feature, particularité ...) du standard ECMA ça non ?
Pierre Goiffon
Jean-Charles Gibier wrote:
Le problème est plus complexe qu'il n'y paraît dans la mesure ou je voudrais que les antislash's ne soient pas interprétés avant d'être affectés à val. Je ne sais pas si c'est possible (en fait c'est la réponse que je souhaite) mais sans vouloir abuser j'aimerai éviter les réponses lapidaires du style "string.replace() point/barre" ... du moins sans les avoir testées dans les conditions que j'expose.
Cette dernière phrase me choque pour le moins : (...)
Je n'exige rien: la formule *sans vouloir abuser* était sincère.
Me voilà rassuré par votre réponse. Merci
Jean-Charles Gibier wrote:
Le problème est plus complexe qu'il n'y paraît dans la mesure ou je
voudrais que les antislash's ne soient pas interprétés avant d'être
affectés à val. Je ne sais pas si c'est possible (en fait c'est la
réponse que je souhaite) mais sans vouloir abuser j'aimerai éviter
les réponses lapidaires du style "string.replace() point/barre" ...
du moins sans les avoir testées dans les conditions que j'expose.
Cette dernière phrase me choque pour le moins :
(...)
Je n'exige rien: la formule *sans vouloir abuser* était sincère.
Le problème est plus complexe qu'il n'y paraît dans la mesure ou je voudrais que les antislash's ne soient pas interprétés avant d'être affectés à val. Je ne sais pas si c'est possible (en fait c'est la réponse que je souhaite) mais sans vouloir abuser j'aimerai éviter les réponses lapidaires du style "string.replace() point/barre" ... du moins sans les avoir testées dans les conditions que j'expose.
Cette dernière phrase me choque pour le moins : (...)
Je n'exige rien: la formule *sans vouloir abuser* était sincère.
Me voilà rassuré par votre réponse. Merci
Pierre Goiffon
Jean-Charles Gibier wrote:
On se demande bien quel peut être l'intéret d'avoir le path d'un fichier vers un disque-dur de Windows ... ! ?
Sarcasme ou suspicion ? Parce que dans le cadre d'un paramétrage logiciel par intranet je vous assure que la question ne se pose même pas.
J'ai entendu dire que les navigateurs Mozilla refusent de suivre un lien file: depuis une page servie en HTTP... (lu sur f.c.i.w.navigateurs récemment sous la plume de Pascal Chevrel, et aussi ici par exemple : http://www.cs.tut.fi/~jkorpela/fileurl.html)
Et j'imagine que IE doit avoir ce genre de limitations aussi (si ce n'ets la version 6 SP2, alors la 7...) ?
Jean-Charles Gibier wrote:
On se demande bien quel peut être l'intéret d'avoir le path d'un
fichier vers un disque-dur de Windows ... ! ?
Sarcasme ou suspicion ?
Parce que dans le cadre d'un paramétrage logiciel par intranet je vous
assure que la question ne se pose même pas.
J'ai entendu dire que les navigateurs Mozilla refusent de suivre un lien
file: depuis une page servie en HTTP... (lu sur f.c.i.w.navigateurs
récemment sous la plume de Pascal Chevrel, et aussi ici par exemple :
http://www.cs.tut.fi/~jkorpela/fileurl.html)
Et j'imagine que IE doit avoir ce genre de limitations aussi (si ce
n'ets la version 6 SP2, alors la 7...) ?
On se demande bien quel peut être l'intéret d'avoir le path d'un fichier vers un disque-dur de Windows ... ! ?
Sarcasme ou suspicion ? Parce que dans le cadre d'un paramétrage logiciel par intranet je vous assure que la question ne se pose même pas.
J'ai entendu dire que les navigateurs Mozilla refusent de suivre un lien file: depuis une page servie en HTTP... (lu sur f.c.i.w.navigateurs récemment sous la plume de Pascal Chevrel, et aussi ici par exemple : http://www.cs.tut.fi/~jkorpela/fileurl.html)
Et j'imagine que IE doit avoir ce genre de limitations aussi (si ce n'ets la version 6 SP2, alors la 7...) ?
ASM
On se demande bien quel peut être l'intéret d'avoir le path d'un fichier vers un disque-dur de Windows ... ! ?
Sarcasme ou suspicion ?
Certes, mais néanmoins interrogation. (pourquoi avoir dans un imput le chemin du fichier ?)
Parce que dans le cadre d'un paramétrage logiciel par intranet je vous assure que la question ne se pose même pas.
sauf à ce que j'y glisse mon Mac ? :-)
Et encore une fois : merci au concepteur de Windows ...
Pourquoi Windows ?
paske c'est bien sous windows qu'on a des paths à anti-slash ? (du moins si j'ai bien compris, n'ayant pas Windows) alors que par exemple sur Mac ce sont des slashs.
C'est un problème (feature, particularité ...) du standard ECMA ça non ?
Non c'est un pb côté Windows, à moins qu'il n'accepte les 2 formats de chemin ? C:/dossier/fichier C:dossierfichier
-- Stephane Moriaux et son (moins) vieux Mac déjà dépassé
On se demande bien quel peut être l'intéret d'avoir le path d'un
fichier vers un disque-dur de Windows ... ! ?
Sarcasme ou suspicion ?
Certes, mais néanmoins interrogation.
(pourquoi avoir dans un imput le chemin du fichier ?)
Parce que dans le cadre d'un paramétrage logiciel par intranet je vous
assure que la question ne se pose même pas.
sauf à ce que j'y glisse mon Mac ? :-)
Et encore une fois : merci au concepteur de Windows ...
Pourquoi Windows ?
paske c'est bien sous windows qu'on a des paths à anti-slash ?
(du moins si j'ai bien compris, n'ayant pas Windows)
alors que par exemple sur Mac ce sont des slashs.
C'est un problème (feature, particularité ...) du standard ECMA ça non ?
Non c'est un pb côté Windows,
à moins qu'il n'accepte les 2 formats de chemin ?
C:/dossier/fichier
C:dossierfichier
--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé
On se demande bien quel peut être l'intéret d'avoir le path d'un fichier vers un disque-dur de Windows ... ! ?
Sarcasme ou suspicion ?
Certes, mais néanmoins interrogation. (pourquoi avoir dans un imput le chemin du fichier ?)
Parce que dans le cadre d'un paramétrage logiciel par intranet je vous assure que la question ne se pose même pas.
sauf à ce que j'y glisse mon Mac ? :-)
Et encore une fois : merci au concepteur de Windows ...
Pourquoi Windows ?
paske c'est bien sous windows qu'on a des paths à anti-slash ? (du moins si j'ai bien compris, n'ayant pas Windows) alors que par exemple sur Mac ce sont des slashs.
C'est un problème (feature, particularité ...) du standard ECMA ça non ?
Non c'est un pb côté Windows, à moins qu'il n'accepte les 2 formats de chemin ? C:/dossier/fichier C:dossierfichier
-- Stephane Moriaux et son (moins) vieux Mac déjà dépassé
ASM
Non c'est un pb côté Windows, à moins qu'il n'accepte les 2 formats de chemin ? C:/dossier/fichier C:dossierfichier
encore que : file:///C|/W95/Calc.exe. nous disent-ils ici : http://www.cs.tut.fi/~jkorpela/fileurl.html
-- Stephane Moriaux et son (moins) vieux Mac déjà dépassé
Non c'est un pb côté Windows,
à moins qu'il n'accepte les 2 formats de chemin ?
C:/dossier/fichier
C:dossierfichier
encore que :
file:///C|/W95/Calc.exe.
nous disent-ils ici :
http://www.cs.tut.fi/~jkorpela/fileurl.html
--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé
Non c'est un pb côté Windows, à moins qu'il n'accepte les 2 formats de chemin ? C:/dossier/fichier C:dossierfichier
encore que : file:///C|/W95/Calc.exe. nous disent-ils ici : http://www.cs.tut.fi/~jkorpela/fileurl.html
-- Stephane Moriaux et son (moins) vieux Mac déjà dépassé
Jean-Charles Gibier
Non c'est un pb côté Windows, à moins qu'il n'accepte les 2 formats de chemin ? C:/dossier/fichier C:dossierfichier
encore que : file:///C|/W95/Calc.exe. nous disent-ils ici : http://www.cs.tut.fi/~jkorpela/fileurl.html
Si je ne m'abuse l'url file:///C:/machin/truc est la norme pour accéder à une ressource du système du fichier local. Mon champ input ne sert qu'à décrire un chemin sur un système. Il ne s'agit pas nécessairement de Windows d'ailleurs mais quand c'est le cas c'est assez coton à manipuler.
Non c'est un pb côté Windows,
à moins qu'il n'accepte les 2 formats de chemin ?
C:/dossier/fichier
C:dossierfichier
encore que :
file:///C|/W95/Calc.exe.
nous disent-ils ici :
http://www.cs.tut.fi/~jkorpela/fileurl.html
Si je ne m'abuse l'url file:///C:/machin/truc est la norme pour accéder
à une ressource du système du fichier local. Mon champ input ne sert
qu'à décrire un chemin sur un système. Il ne s'agit pas nécessairement
de Windows d'ailleurs mais quand c'est le cas c'est assez coton à manipuler.
Non c'est un pb côté Windows, à moins qu'il n'accepte les 2 formats de chemin ? C:/dossier/fichier C:dossierfichier
encore que : file:///C|/W95/Calc.exe. nous disent-ils ici : http://www.cs.tut.fi/~jkorpela/fileurl.html
Si je ne m'abuse l'url file:///C:/machin/truc est la norme pour accéder à une ressource du système du fichier local. Mon champ input ne sert qu'à décrire un chemin sur un système. Il ne s'agit pas nécessairement de Windows d'ailleurs mais quand c'est le cas c'est assez coton à manipuler.