Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从图像URL抓取文件名_Javascript_Regex_Imgur - Fatal编程技术网

Javascript 从图像URL抓取文件名

Javascript 从图像URL抓取文件名,javascript,regex,imgur,Javascript,Regex,Imgur,我正在做一个非常基本的Chrome扩展,主要用于个人和朋友之间的使用。在任何情况下,我的URL基本上如下所示: i.imgur.com/abcd123.png或 imgur.com/a2b3c78甚至 i.imgur.com/herp321.png?1 从这些URL中,我唯一需要的是扩展之前的7个字符的代码。在这些示例中,abcd123、a2b3c78和herp321 我一直在运行一个.replace,它不会像第三个示例那样捕获异常,甚至试图抛出一些正则表达式(我甚至无法接近正常运行)。URL中

我正在做一个非常基本的Chrome扩展,主要用于个人和朋友之间的使用。在任何情况下,我的URL基本上如下所示:

i.imgur.com/abcd123.png
imgur.com/a2b3c78
甚至
i.imgur.com/herp321.png?1

从这些URL中,我唯一需要的是扩展之前的7个字符的代码。在这些示例中,
abcd123
a2b3c78
herp321

我一直在运行一个
.replace
,它不会像第三个示例那样捕获异常,甚至试图抛出一些正则表达式(我甚至无法接近正常运行)。URL中唯一不变的部分如下所示,代码标记为
x

imgur.com/xxxxxxxx

URL可能有一个不同的开头,在7位代码之后有一个不同的结尾,但上面的内容是不变的。是否有一种方法可以从上面的示例中仅提取此字母数字文件名,而不管URL的开头是什么或在末尾添加了任何修改器/扩展名?

您可以尝试以下方法:

/.+\/([a-z0-9]+).+/
在JS中:

var imgUrl = 'i.imgur.com/dsf8635235.png?sdgdsgdsg'
  , matches = imgUrl.match( /.+\/([a-z0-9]+).+/ );

console.log( matches[ 1 ] ); // dsf8635235
一些变化:

console.log( 'imgur.com/dsf8635235'.match( /.+\/([a-z0-9]+).+/ )[ 1 ] ); // dsf8635235
console.log( 'i.imgur.com/dsf8635235'.match( /.+\/([a-z0-9]+).+/ )[ 1 ] ); // dsf8635235
console.log( 'imgur.com/dsf8635235?1'.match( /.+\/([a-z0-9]+).+/ )[ 1 ] ); // dsf8635235
等等。

您可以尝试以下方法:

/.+\/([a-z0-9]+).+/
在JS中:

var imgUrl = 'i.imgur.com/dsf8635235.png?sdgdsgdsg'
  , matches = imgUrl.match( /.+\/([a-z0-9]+).+/ );

console.log( matches[ 1 ] ); // dsf8635235
一些变化:

console.log( 'imgur.com/dsf8635235'.match( /.+\/([a-z0-9]+).+/ )[ 1 ] ); // dsf8635235
console.log( 'i.imgur.com/dsf8635235'.match( /.+\/([a-z0-9]+).+/ )[ 1 ] ); // dsf8635235
console.log( 'imgur.com/dsf8635235?1'.match( /.+\/([a-z0-9]+).+/ )[ 1 ] ); // dsf8635235
等等。

一个简单的方法:

 var text   = 'i.imgur.com/herp321.png?1'
 var regex  = /imgur\.com\/(\w{7})/;

 console.log(text.match(regex)[1]);
一个简单的方法:

 var text   = 'i.imgur.com/herp321.png?1'
 var regex  = /imgur\.com\/(\w{7})/;

 console.log(text.match(regex)[1]);

可以将match函数与正则表达式一起使用

编辑:

这应该起作用:

var urls = ["i.imgur.com/abcd123.png", "imgur.com/a2b3c78", "i.imgur.com/herp321.png?1"];
var reg =  /\/(.{7})/;

for(i=0;i<urls.length;i++) {
  reg.exec(urls[i]);
  console.log(RegExp.$1);
}
var url=[“i.imgur.com/abcd123.png”、“imgur.com/a2b3c78”、“i.imgur.com/herp321.png?1”];
var reg=/\/(.{7})/;

对于(i=0;i,可以使用带有正则表达式的match函数

编辑:

这应该起作用:

var urls = ["i.imgur.com/abcd123.png", "imgur.com/a2b3c78", "i.imgur.com/herp321.png?1"];
var reg =  /\/(.{7})/;

for(i=0;i<urls.length;i++) {
  reg.exec(urls[i]);
  console.log(RegExp.$1);
}
var url=[“i.imgur.com/abcd123.png”、“imgur.com/a2b3c78”、“i.imgur.com/herp321.png?1”];
var reg=/\/(.{7})/;

对于(i=0;我似乎不起作用。它吐出的值如下:
[”http://i.imgur.com/M5rtaNS.jpg,“i”,索引:0,输入:http://i.imgur.com/M5rtaNS.jpg"]
正确。
match
函数返回
Array
,您可以在
控制台中看到。log
我得到数组的
1
索引,该数组包含您需要的字符串。我打印出了整个
matches
变量。在索引1处,您可以看到值是
I
。似乎不起作用。它正在吐出vaLUE是这样的:
[”http://i.imgur.com/M5rtaNS.jpg,“i”,索引:0,输入:http://i.imgur.com/M5rtaNS.jpg"]
正确。
match
函数返回
Array
,正如您在
控制台中看到的。log
我得到数组的
1
索引,该数组包含您需要的字符串。我打印出了整个
matches
变量。在索引一,您可以看到值是
I
。运气不好,我会吐出这些值:
//i.imgu”,索引:5,输入:http://i.imgur.com/qvjrnFL.jpg]
运气不好,吐出以下值:
“//i.imgu”,索引:5,输入:http://i.imgur.com/qvjrnFL.jpg“]