![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Consider the following line of code... var path = location.pathname; ...after execution, the variable "path" contains something like "file:///C:/Documents%20and%20Settings/user/Desktop/Test/fileread.htm" How do I parse this down to "C:\Documents and Settings\user\Desktop\Test" ...or at least to "C:/Documents%20and%20Settings/user/Desktop/Test" Is there a better function to retrieve the source folder containing the current HTML document? I need to know the path to the current folder to reference other files in the same directory using a FileSystemObject. Thanks! |
#3
| |||
| |||
|
|
How do I parse this down to "C:\Documents and Settings\user\Desktop\Test" ...or at least to "C:/Documents%20and%20Settings/user/Desktop/Test" |
#4
| |||
| |||
|
|
myVar = "file:///C:/Documents%20and%20Settings/user/Desktop/Test/fileread.htm" re = /\//g; myVar = unescape(myVar.replace('file:///','')).replace(re,'\\') myFile = myVar.lastIndexOf('\\') myPath = myVar.substring(0,myFile) alert(myPath) The alert gives me C:\Documents And Settings\user\Desktop\Test Probably a more efficient way, my knowledge of Regular Expressions is limited. Lightly tested in IE6. Note: On WinME, location.pathname gives me /C:\WINDOWS\Desktop\webpage\blank.html |
|
Which is the path to the blank test file I used. Only needs the \\ changed to \ and / removed from the beginning. Changing it to this: myVar = "file:///C:/Documents%20and%20Settings/user/Desktop/Test/fileread.htm" document.write(location.pathname) re = /\//g; myVar = unescape(myVar.replace('file://','')).replace(re,'\\') myFile = myVar.lastIndexOf('\\') myPath = myVar.substring(1,myFile) alert(myPath) Seems to work when I set myVar the way its set, or, set it to location.pathname |
#5
| |||
| |||
|
|
"Phrederik" <postmaster (AT) 127 (DOT) 0.0.1> wrote in message news krbb.7036$I36.4705 (AT) pd7tw3no (DOT) ..Consider the following line of code... var path = location.pathname; ...after execution, the variable "path" contains something like "file:///C:/Documents%20and%20Settings/user/Desktop/Test/fileread.htm" How do I parse this down to "C:\Documents and Settings\user\Desktop\Test" ...or at least to "C:/Documents%20and%20Settings/user/Desktop/Test" Is there a better function to retrieve the source folder containing the current HTML document? I need to know the path to the current folder to reference other files in the same directory using a FileSystemObject. Thanks! Hi Phred, I used a different variable name because "path" looks too much like a reserved word to me. p="file:///C:/Documents%20and%20Settings/user/Desktop/Test/fileread.htm"; alert( p = p.substring(p.indexOf('C:'), p.lastIndexOf('/')) ); while( p.indexOf('/')+1 ) p=p.replace(/\//,'\\'); while( p.indexOf('%20' )+1) p=p.replace(/%20/,' '); alert( p ); Different string method are used here, to begin with indexOf and lastIndexOf. You can hardcode the string 'C:' only if you are certain everything will indeed be under C... These two methods return integers, numbers that is, which form the arguments for the third method, the substring, which cuts off the superfluous bits at start and end. The bit "p=p.substring(...)" not only assigns a value to p, but also returns this value to any function willing to receive it. In this case there is one: the alert is which the whole is wrapped. Next two lines cycle through the variable, replacing matching substrings as they go. The first argument of the replace method is a regular expression. These are often delimited by slashes instead of quotes, and can have a global and case insensitive flag. Because it is slashes we are looking to replace, these must be escaped inside the regex string. Special characters are escaped by preceding them with a backslash. The backslash is also a special character. No alpha characters here, so case doesn't matter, and I opted for the while loop instead of the global flag for when you start using double spaces in your urls. The global flag doesn't catch immediate repeats. |
#6
| |||
| |||
|
|
Hey all! New to javascript and still getting my head around strings... Consider the following line of code... var path = location.pathname; ...after execution, the variable "path" contains something like "file:///C:/Documents%20and%20Settings/user/Desktop/Test/fileread.htm" How do I parse this down to "C:\Documents and Settings\user\Desktop\Test" ...or at least to "C:/Documents%20and%20Settings/user/Desktop/Test" Is there a better function to retrieve the source folder containing the current HTML document? I need to know the path to the current folder to reference other files in the same directory using a FileSystemObject. Thanks! |
![]() |
| Thread Tools | |
| Display Modes | |
| |