Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярные выражения (https://javascript.ru/forum/misc/35052-regulyarnye-vyrazheniya.html)

Artsemi 29.01.2013 13:30

Регулярные выражения
 
Всем привет.

Вопросик по регулярному.
Есть адрес ссылки к примеру "images/bmw/1/1.jpg"
Нужно заменить конец на 2.jpg, чтобы получилось "images/bmw/1/2.jpg"

делал так:
var resultHref = replaceHref.replace(/\/.+\.jpg$/, curHref);


но в итоге получается images2.jpg (я понимаю почему!!!)
Подскажите плиз как сделать чтобы заменило только конец строки?

ksa 29.01.2013 13:39

Цитата:

Сообщение от Artsemi
Подскажите плиз как сделать чтобы заменило только конец строки?

Как вариант...

var s='images/bmw/1/1.jpg';
var n=2;
alert(s.replace(/[0-9]+(.jpg)$/,n+'$1'));

Artsemi 29.01.2013 13:45

Цитата:

Как вариант...
А если неизвестно выражение "images/bmw/1" ??
Я так изначально делал, а потом вспомнил про то, что адрес будет меняться.
Спасибо за ответ.

ksa 29.01.2013 13:48

Цитата:

Сообщение от Artsemi
А если неизвестно выражение "images/bmw/1" ?

Нужно точно знать какие символы будут в имени файла...

Artsemi 29.01.2013 13:53

А по другому никак? Может с помощью дополнительных функций?

ksa 29.01.2013 13:58

Цитата:

Сообщение от Artsemi
Может с помощью дополнительных функций?

Как вариант...

var s='images/bmw/1/1aaa_bbb.jpg';
var n='new_file';
alert(s.replace(/[\w]+(.jpg)$/,n+'$1'));

ksa 29.01.2013 13:59

Или так...

var s='images/bmw/1/1aaa_bbb.jpg';
var n='new_file.bmp';
alert(s.replace(/[\w]+.jpg$/,n));

ksa 29.01.2013 14:01

Или так...

var s='images/bmw/1/1aaa_bbb.jpg';
var n='new_file.bmp';
alert(s.replace(/[\w]+.[\w]+$/,n));

ksa 29.01.2013 14:04

Или так...

var s='images/bmw/1/1aaa_bbb.jpg';
var n='new_file.bmp';
alert(s.replace(/\/[\w.]+$/,'/'+n));

ksa 29.01.2013 14:06

Добью танцем (с) :D

var s='images/bmw/1/1aaa_bbb.jpg';
var n='new_file.bmp';
alert(s.replace(/(\/|\\)[\w.]+$/,'$1'+n));


Часовой пояс GMT +3, время: 20:40.