Javascript,字符串操作,正则表达式或其他东西

问题描述:

我是JavaScript/jquery中正则表达式和任何字符串操作中最糟糕的人,你可以请一些帮助吗?Javascript,字符串操作,正则表达式或其他东西

http://farm5.static.flickr.com/4040/5160997583_5ea677e4e1_s.jpg

这是需要从这个网址得到

感谢您帮助的URL结构的例子!

+1

您需要再解释一下自己:您是否想要查找文件名的前10个字符?你想查找文件名的所有字符到下划线吗?你想查找文件名的起始位? – 2011-01-12 15:22:50

假设结构始终是相同的,您要查找的文件名了的所有字符为下划线的第一次出现,你可以这样做:

var str = "http://farm5.static.flickr.com/4040/5160997583_5ea677e4e1_s.jpg"; 
var num = str.split("/"); 
num = num[num.length - 1].split("_")[0]; 
alert(num); 

str.split("/")[-1]得到5160997583_5ea677e4e1_s.jpg然后我们将该字符串拆分为_并获取该字符串的第一部分。

或者,你可以这样做:

var num = str.replace(/\/(\d+)_[^\/]+$/i, "$1"); 
+0

JavaScript中不能有负数组索引。 – tillda 2011-01-12 15:22:04

+0

@tillda - 好点,太多的Python。谢谢! – 2011-01-12 15:26:19

var code = url.match(/\/([0-9]+)_[^\/]*$/)[1];

(编辑以更严格)

一个正则表达式,将找到的文件名的起始数字会是这样一个

/\/(\d+)[^\/]+$/ 

你可以这样使用它

url = "http://farm5.static.flickr.com/4040/5160997583_5ea677e4e1_s.jpg"; 
matches = url.match(/\/(\d+)[^\/]+$/); 
alert(matches[1]); // here it is/