Есть ли эквивалент в 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
Как я могу это сделать?
Ответы
Ответ 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