1

简单的问题,但我不太了解正则表达式...

http://foo.com/bar/image/abc.jpg

如何在javascript中使用正则表达式只获取abc ?

4

5 回答 5

4
'http://foo.com/bar/image/abc.jpg'.split('/').pop().split('.').shift();
于 2013-06-06T16:51:08.543 回答
3

你可以使用这个: -

var url = 'http://foo.com/bar/image/abc.jpg'
var fileName = url.substring(url.lastIndexOf('/') + 1, url.lastIndexOf('.'));

这会给你“abc”。只需一行代码。:)

于 2013-06-06T16:53:21.637 回答
2

没有正则表达式怎么样:

var str = "http://foo.com/bar/image/abc.jpg"
str.split("/").slice(-1)[0].split(".")[0]
于 2013-06-06T16:50:23.380 回答
1

演示在这里:

var test = "http://foo.com/bar/image/abc.jpg";

var i = test.lastIndexOf("/");
var j = test.lastIndexOf(".");
var str = test.substring(i + 1, j);
document.body.innerHTML += "<p>" + str + "</p>";
于 2013-06-06T16:49:29.677 回答
1

正则表达式版本:

var result = 'http://foo.com/bar/image/abc.jpg'.match(/[^\/]+(?=\.jpg$)/)[0];

对后代的解释:

match 函数返回一个结果数组,但在这里我确定只有 1 个结果,因为我的模式被锚定到字符串的末尾,因此我选择 index [0]

正则表达式:

[^\/]+     all that is not a slash one or more times
(?=\.jpg$) is a lookahead that mean: followed by .jpg 
$          stand for the end of the string 
于 2013-06-06T17:00:47.440 回答