Подтвердить что ты не робот

Есть ли эквивалент в jQuery для PHP `preg_replace()`?

Скажем, у меня есть следующее:

<img src="http://www.site.com/folder/pic.jpg">

Этот путь может быть любым, мы в основном хотим получить "pic.jpg как переменную".

В настоящее время мы делаем это так:

var first_img = $("#thumbnail-area li:first").find("img").attr("title");

Что задает переменную first_img как изображение src, но мы хотим сделать подобную игру, похожую на PHP, чтобы захватить "pic.jpg".

Это должно работать правильно, поэтому путь может быть: folder/foo/bar/x982j/second822.jpg и он вернет second822.jpg

Как я могу это сделать?

4b9b3361

Ответ 1

Вы можете использовать replace(), который похож на PHP preg_replace() (он тоже принимает PCRE, с некоторыми ограничениями, такими как отсутствие внешнего вида)...

str.replace(/.*\//, '')

jsFiddle.

В качестве альтернативы вы можете использовать...

str.split('/').pop();

jsFiddle.

Ответ 2

jQuery здесь не требуется; Javascript поддерживает регулярные выражения самостоятельно, поэтому jQuery не является частью ответа.

Функция замены регулярного выражения Javascript просто называется .replace() и является методом класса string. Вы использовали бы его следующим образом:

var mystring = 'this is a string';
mystring.replace(/is a/,'might be a');
//mystring is now equal to 'this might be a string'.

Этого должно быть достаточно, чтобы вы начали. Поскольку вы ссылались на preg_replace() в вопросе, я полагаю, вы уже знаете, как правильно использовать регулярные выражения, чтобы не было подробного обсуждения того, как решить ваш конкретный пример.

Ответ 3

Рабочий пример здесь: http://jsfiddle.net/jkeyes/sxx3T/

var re = new RegExp(".*\/(.*)$");
var src="folder/foo/bar/x982j/second822.jpg";
var m = re.exec(src);
alert(m[1]); // first group