Javascript jQuery正则表达式匹配返回空字符串
我需要去掉嵌入的youtube视频的ID,所以我有一个类似以下内容的url:Javascript jQuery正则表达式匹配返回空字符串,javascript,jquery,regex,Javascript,Jquery,Regex,我需要去掉嵌入的youtube视频的ID,所以我有一个类似以下内容的url: www.youtube.com/embed/[someID]&rel=0&controls=0&showinfo=0&frameborder=1&modestbranding=1 我只需要[someID]字符串。我声明了一个空数组来存储正则表达式匹配项 var videoID = []; 我最接近的解决方案是: videoID = videoID.match("embed/(
www.youtube.com/embed/[someID]&rel=0&controls=0&showinfo=0&frameborder=1&modestbranding=1
我只需要[someID]字符串。我声明了一个空数组来存储正则表达式匹配项
var videoID = [];
我最接近的解决方案是:
videoID = videoID.match("embed/(\w*)");
但这会导致以下结果:
video[0] ("embed/")
video[1] ()
我不确定是否可以做正面的Lookbehinds,但是试试这个(?使用这个:
url = "www.youtube.com/embed/someID&rel=0&controls=0&showinfo=0&frameborder=1&modestbranding=1";
然后使用以下任一方法:
var videoID = url.match(/embed\/(\w*)/); // regex
否则:
var videoID = url.match("embed/\\w*)"); // regex object
两者都将提供此输出:
["embed/someID", "someID"]
如果您提供一个字符串,那么string#match
方法将尝试构造一个RegExp
对象,在这种情况下,您需要使用\\w
而不是\w
尝试此操作,您可能会获得id。我没有使用regex,但我们仍然可以从上面类似演示的URL获得id
var url ="www.youtube.com/embed/[someID]&rel=0&controls=0&showinfo=0&frameborder=1&modestbranding=1";
var urlQueries = url.split('/');
var queryParameters = urlQueries[2].split('&'); // arrays of all query parameters
var id = queryParameters[0]; // get ids at index 0
工作演示jQuery不是一种语言。您正在编写JavaScript.JS,它没有任何内置的URL解析功能,因此您必须执行某种字符串操作:URL.split('&')[0]。split('/')).slice(-1)[0]