2010-07-06 2 views
1

Мне нужно взять строки в следующем формате:JavaScript RegEx изменить строку

http:\/\/img.mypath.net\/time\/daily\/2010\/1006\/my_image_name.jpg

и конвертировать их в этом, используя JavaScript:

http://www.mynewpath.com/i/daily/2010/1006/77_my_image_name.jpeg

Я уверен, что кто-то более свободно в RegEx, чем я могу дать краткое решение.

+1

Что вы попробовали? –

+0

Итак, «V» превращается в «/», а «W» превращается в «www» вправо? –

+0

это '\/\ /' не 'W'. Хотя это похоже на то, что домен должен измениться с «img.mypath.net» на «www.mynewpath.com» - опять же, замена может сделать это. –

ответ

4

Как насчет этого?

var url = 'http:\/\/img.mypath.net\/time\/daily\/2010\/1006\/my_image_name.jpg';  
url = url.replace('\\/', '/'); // Replace \/ by/
url = url.replace('img.mypath.net/time', 'www.mynewpath.com/i'); // Replace domain and first path. 
url = url.replace(/([^/]+)$/g, '77_$1'); // Prefix last path with `77_` (???) 
alert(url); 

Требование вокруг 77 неясна, но если она фиксирована, выше должен делать.

+0

Есть больше различий между двумя URL-адресами, чем просто сбрасываемые обратные слэши. Спасибо хоть. – jerome

+0

Ваше последнее регулярное выражение может быть просто '[^ /] + $' с '77_ $ 0' на стороне замены. –

+0

@jerome: Это не было очевидно в исходном вопросе. Я обновил свой ответ. @Peter: это действительно лучше. – BalusC

Смежные вопросы