在斜杠之间提取数字

时间:2013-09-07 14:25:42

标签: javascript jquery regex string

这是我的设置:

var test = 
"http://tv.website.com/video/8086844/randomstring/".match(/^.+tv.website.com\/video\/(.*\d)/);

我想提取视频ID(8086844)并且正则表达式确实有效,但是当在“randomstring”之后添加另一个数字时,它也匹配8086844 + randomstring +其他数字。

为了始终只获取视频ID,我需要更改什么。

4 个答案:

答案 0 :(得分:1)

问题是(.*\d)部分,它会查找以数字结尾的贪婪字符串,而不是video/后需要一系列连续数字,可以通过(\d+)完成

将其更改为

var test  = "http://tv.website.com/video/8086844/randomstring/dd".match(/^.+tv.website.com\/video\/(\d+)/)[1];

答案 1 :(得分:1)

试试这个正则表达式

/^.+tv.website.com\/video\/([\d]+)/

它将在...video\字后搜索每个数字字符,然后给出所有的一致数字,直到任何非数字字符出现

答案 2 :(得分:1)

var test = "http://tv.website.com/video/8086844/randomstring/8";
test = test.match(/^.+tv.website.com\/video\/(\d+)/);
console.log(test);
console.log(test[1]);

<强>输出

[ 'http://tv.website.com/video/8086844',
  '8086844',
  index: 0,
  input: 'http://tv.website.com/video/8086844/randomstring/8' ]
8086844

你快到了。我们知道,它只会是数字。因此,我们只收集数字并使用parens对它们进行分组,而不是.*\d

答案 3 :(得分:0)

这是最简单的:

在这里使用substr

test.substr(28,7)

Fiddle

从字符串 test 中提取 id :我们使用 substr(from,to)