jQuery中是否有类似于PHP的`preg_replace()`函数的等效函数?

18

假设我有以下内容:

<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中的preg匹配以获取"pic.jpg"。

这必须正常工作,因此路径可能是:folder/foo/bar/x982j/second822.jpg,并且它将返回second822.jpg

我该如何做到这一点?

3个回答

23

你可以使用replace(),它类似于PHP的preg_replace()(也可以接受一个PCRE,但有一些限制,例如不能使用lookbehind)...

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

jsFiddle.

或者,你可以使用......

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

jsFiddle.


7

这里不需要使用jQuery;Javascript本身就支持正则表达式,所以jQuery并不是解决方案的一部分。

Javascript的正则表达式替换函数简单地称为.replace(),它是字符串类的一个方法。你可以按照以下方式使用它:

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(),我假设您已经知道如何使用正则表达式,无需详细讨论如何解决您特定的例子。


变量mystring = 'this is a string'; mystring = mystring.replace(/is a/,'可能是一个'); - czLukasss

1

这里有一个工作示例: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 

展示工作的 jsfiddle 链接很好,但是当代码像这个一样简短时,您真的应该在回答中发布代码。 - Spudley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接