Ik ben bezig met het veranderen van een paar HTT files, dit gaat allemaal prima. Echter loop ik tegen een simpel probleem aan, de HTT files krijgen waardes binnen met enkele slashes.
Ik wil de waarde %THISDIRPATH% splitten op een backslash, echter kan hij het niet exploden omdat het een escape teken is. Ik dacht dus laat ik die backslash eens vervangen door een dubbele backslash (zie script 1), dan werkt het script perfect.
Echter het leuke is dat %THISDIRPATH% een enkele slash bevat, nou dacht ik dat op te lossen door de methode uit script 2 te gebruiiken (dit kwam ik overal tegen op internet, en opzich had ik zoiets ook wel verwacht).
script 1:
script 2:
[edit]
de var DIR in de 2 scripts moet je zien als %THISDIRPATH%, in het 2e script staat wat %THISDIRPATH% wordt na de replace door Windows.
[/end edit]
Script 2 lijkt me het logischte om te doen met een regex (open regex, 2x backslash is single slash in JS, sluiten regex, global), ook heb ik dit op een aantal andere websites teruggevonden.
Hoe kan ik er voor zorgen dat ik de waarde %THISDIRPATH% kan laten exploden(php)/splitten(js) naar een array? Ik dacht dat dit wel moest werken, maar dat doet het gewoonweg niet (zowel met IE6 als FF).
Ik wil de waarde %THISDIRPATH% splitten op een backslash, echter kan hij het niet exploden omdat het een escape teken is. Ik dacht dus laat ik die backslash eens vervangen door een dubbele backslash (zie script 1), dan werkt het script perfect.
Echter het leuke is dat %THISDIRPATH% een enkele slash bevat, nou dacht ik dat op te lossen door de methode uit script 2 te gebruiiken (dit kwam ik overal tegen op internet, en opzich had ik zoiets ook wel verwacht).
script 1:
code:
1
2
| var dir = 'C:\\some\\stupid\\path\\to\\an\\file';
alert(dir.split('\\')); |
script 2:
code:
1
2
3
| var dir = 'C:\some\stupid\path\to\an\file'; var new = dir.replace(/\\/g,'\\\\'); alert (new); |
[edit]
de var DIR in de 2 scripts moet je zien als %THISDIRPATH%, in het 2e script staat wat %THISDIRPATH% wordt na de replace door Windows.
[/end edit]
Script 2 lijkt me het logischte om te doen met een regex (open regex, 2x backslash is single slash in JS, sluiten regex, global), ook heb ik dit op een aantal andere websites teruggevonden.
JSInc
backslash backslashes (must be done first, so that we do not affect our own backslashes later): replace(/\\/g, '\\\\'). Since the backslash itself is always backslashed, when we replace one \ with two \\, we actually type code that includes two \\ and four \\\\.
regular-expressions.info
The regular expression \\ matches a single backslash. In JavaScript, this becomes re = /\\/
Ook heb ik nog wat informatie van deze website, daar staat veel uitleg over JavaScript RegEx (net als op de bovengenoemde websites).The Code Project
code:
1 2 3// attach initialisation code to it // .replace(/\\/g, "\\\\") replaces simple backslashes with // double-backslashes
Hoe kan ik er voor zorgen dat ik de waarde %THISDIRPATH% kan laten exploden(php)/splitten(js) naar een array? Ik dacht dat dit wel moest werken, maar dat doet het gewoonweg niet (zowel met IE6 als FF).
[ Voor 8% gewijzigd door Verwijderd op 22-09-2004 21:16 ]