Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/01/2011, 09h44   #1
Invité régulier
 
Jo
Inscription : novembre 2010
Messages : 25
Détails du profil
Informations personnelles :
Nom : Jo
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : novembre 2010
Messages : 25
Points : 6
Points : 6
Par défaut Remplacer un backslash par un double backslash

Bonjour,

Je cherche à remplacer les slashs dans une url par des doubles slashs afin d'ouvrir un fichier avec l'activeX ActiveXObject("Scripting.FileSystemObject")

J'essaie la méthode suivante :
Code :
fileDir= fileDir.replace(/\\/g,"\\");
Mais cela ne fonctionne pas.
Quelqu'un a-t-il une idée ?
zalzasta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 09h57   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
le souci est que dans une chaine pour js le \ est le caractère d'échappement.
il va falloir passer par le code octal ...

tu parles de slash mais tu remplace les backslashes ...

sinon essaye:

Code :
fileDir.replace(/\//gi, "//")
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 10h16   #3
Invité régulier
 
Jo
Inscription : novembre 2010
Messages : 25
Détails du profil
Informations personnelles :
Nom : Jo
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : novembre 2010
Messages : 25
Points : 6
Points : 6
Autant pour moi, je voulais dire backSlash.

En effet, pour remplacer des slashs par des doubles slashs, il n'y a aucune difficulté, ton code est juste, mais le problème c'est pour remplacer des backslashs par des doubles backslashs.
zalzasta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 10h21   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 10h29   #5
Invité régulier
 
Jo
Inscription : novembre 2010
Messages : 25
Détails du profil
Informations personnelles :
Nom : Jo
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : novembre 2010
Messages : 25
Points : 6
Points : 6
Citation:
Envoyé par SpaceFrog Voir le message
C'est la première chose que j'ai testé mais ca ne fonctionne pas. une alert sur la chaine de caractère le montre.
zalzasta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 10h44   #6
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
je me fierait pas à l'alert car l'antislash est le caractère d'echappement
et par exemple \t est une tabulation ...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<script type="text/javascript">
var path = "truc&#92;machin&#92;bidouille"
path = path.replace(/&#92;/gi, "\\\\")
alert(path)
init= function (){
document.getElementById('foo').innerHTML=path
}
</script>
</head>
 
<body onload='init()'>
<pre id="foo"></foo>
</body>
 
</html>
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 10h51   #7
Invité régulier
 
Jo
Inscription : novembre 2010
Messages : 25
Détails du profil
Informations personnelles :
Nom : Jo
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : novembre 2010
Messages : 25
Points : 6
Points : 6
Citation:
Envoyé par SpaceFrog Voir le message
je me fierait pas à l'alert car l'antislash est le caractère d'echappement
et par exemple \t est une tabulation ...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<script type="text/javascript">
var path = "truc\machin\bidouille"
path = path.replace(/\/gi, "\\\\")
alert(path)
init= function (){
document.getElementById('foo').innerHTML=path
}
</script>
</head>
 
<body onload='init()'>
<pre id="foo"></foo>
</body>
 
</html>
En effet, l'alert mange les antislahs, mais si il y a un double anti slash, il n'en mange qu'un seul, donc il y a toujours moyen de vérifier.

Ta fonction est sympa, mais ca résous pas mon problème, car moi je pars d'une chaine de caractère qui comporte des antishlash, cette chaine est construite dynamiquement, c'est pas moi qui gère sa construction, donc j'ai pas moyen de la toucher pour remplacer les "\" par des "&# 92;" .
zalzasta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 11h19   #8
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
teste le caractère retourné dans ta chaine ... ce n'est pas un \
trouve son code octal
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 11h28   #9
Invité régulier
 
Jo
Inscription : novembre 2010
Messages : 25
Détails du profil
Informations personnelles :
Nom : Jo
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : novembre 2010
Messages : 25
Points : 6
Points : 6
Citation:
Envoyé par SpaceFrog Voir le message
teste le caractère retourné dans ta chaine ... ce n'est pas un \
trouve son code octal
Code :
1
2
3
4
5
6
7
8
9
10
 
    var test = "c:\test.txt";
 
    var result = ("'" + test.charAt(0) + "' : " + test.charCodeAt(0));
    result += ("\n'" + test.charAt(1) + "' : " + test.charCodeAt(1));
    result += ("\n'" + test.charAt(2) + "' : " + test.charCodeAt(2));
    result += ("\n'" + test.charAt(3) + "' : " + test.charCodeAt(3));
    result += ("\n'" + test.charAt(4) + "' : " + test.charCodeAt(4));
    result += ("\n'" + test.charAt(5) + "' : " + test.charCodeAt(5));
     alert(result);
J'ai comme résultat :

'c' : 99
':' : 58
' ' : 9
'e' : 101
's' : 115
't' : 116

En fait pour lui le '\' et le 't' ne sont pas 2 caractères, mais un seul '\t' qui est la tabulation içi.
zalzasta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 11h38   #10
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
oui cf ce que je te disais au dessus ...
\t = tabulation

tu vas etre obligée de recenser tous les caractères \alpha pour en faire des replace ...

\t =>\\t
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 14h20   #11
Invité régulier
 
Jo
Inscription : novembre 2010
Messages : 25
Détails du profil
Informations personnelles :
Nom : Jo
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : novembre 2010
Messages : 25
Points : 6
Points : 6
Ok, c'est une solution un peu lourde, mais sa fonctionne.

Merci
zalzasta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h41.


 
 
 
 
Partenaires

Hébergement Web