2013-05-28 2 views
0

У меня есть строка «D: \ folder \ image.jpg», и я хочу изменить ее на «http://ip/VDrive/folder/image.jpg».Как заменить строку url

Я пытался что-то вроде этого:

var str = "D:\folder\image.jpg"; 
str = str.replace("D:\\", "http://ip/VDrive/"); 
result = str.replace("\\", "/"); 

, но он не работает. Я редактировал внешний файл js непосредственно из VS2008. Надеюсь, он не имеет к этому никакого отношения.

Пожалуйста, помогите мне с этим.

+2

Вы понимаете, что ваша строка имеет (нижний регистр) 'd', и вы пытаетесь заменить (капитал)' D'? – Jon

+0

JavaScript чувствителен к регистру, поэтому обязательно используйте 'toLowerCase()' или '.toUpperCase()' как требуется. Каков результат «результата»? – RemarkLima

+0

Я тоже пытался изменить его на капитал, но он все тот же. Позвольте мне отредактировать мой пост. –

ответ

2

\f переведен на специальный символ. Вам нужно бежать начальную строку:

var str = "d:\\folder\\image.jpg"; 

Кроме того, в КЕРЪАСЕ, если вы хотите сделать это чувствительно к регистру рассматривать регулярные выражения:

str = str.replace(/D:\\/i, "http://ip/VDrive/"); 

Но это будет производить: http://ip/VDrive/folder\image.jpg

Так, конвертировать оставшиеся \ направить слэш:

str = str.replace(/\\/g, "/"); 
+0

Каков наилучший способ заменить исходную строку "d: \ folder \ image.jpg" на "d: \ folder \ image.jpg"? –

+0

Если эта строка сгенерирована с помощью кода сервера, вам необходимо сначала ее деактивировать для javascript, то есть выполнить замену строки «\» на «\\» на стороне сервера. Затем обрабатывайте вещи в javascript, как я показал выше. – Candide

+0

На самом деле строка была получена из <% Eval (FilePath)%>, которая возвращает путь к файлу в этом формате «d: \ folder \ image.jpg», например. –

2
var str = "d:\\folder\\image.jpg";  # Escape here 
str = str.replace("d:\\", "http://ip/VDrive/"); # Case sensitive 
result = str.replace("\\", "/"); 
0
// for a dynamic str 
var file = str.split("\"); 
var to = "http://ip/VDrive/" + file[file.length-1]` 
1

сделать

var str = "d:\folder\image.jpg"; 
var newstr = str.replace("d:\folder", "http://ip/VDrive/folder/"); 
console.log(newstr); 

Демо: jsFiddle

1

Изменить

var str = "d:\folder\image.jpg"; 

в

var str = "d:\\folder\\image.jpg"; 

тогда это работает!

0
var str = "d:\\folder\\image.jpg"; 
result = str.replace("d:\\", "http://ip/VDrive/").replace(/\\/g, "/"); 
Смежные вопросы