Grab the youtube Video ID with Jquery & .match()
Just need a little push as I have this almost working.
I want to feed jquery a U开发者_如何学运维RL and have it strip everthing but the video url.
Here is my code:
var url = 'http://www.youtube.com/watch?v=bxp8NWvIeSo';
$results = url.match("[\\?&]v=([^&#]*)");
alert($results);
});
I'm getting this as an output -
?v=bxp8NWvIeSo,bxp8NWvIeSo
When I only want
bxp8NWvIeSo
if you are not forced to use match, you can use "split":
var getList = function(url, gkey){
var returned = null;
if (url.indexOf("?") != -1){
var list = url.split("?")[1].split("&"),
gets = [];
for (var ind in list){
var kv = list[ind].split("=");
if (kv.length>0)
gets[kv[0]] = kv[1];
}
returned = gets;
if (typeof gkey != "undefined")
if (typeof gets[gkey] != "undefined")
returned = gets[gkey];
}
return returned;
};
var url = 'http://www.youtube.com/watch?v=bxp8NWvIeSo';
$result = getList(url, "v");
alert($result);
First, remove the $ in front of results... I assume that was a typo. Next, replace
$results = url.match("[\\?&]v=([^&#]*)");
with
results = url.match("[\?&]v=([^&#]*)")[1];
match() will return an array if there is a successful match. You're currently getting the entire array. What you want is the second element of the array (match()[1]
) which is what is inside your capturing parentheses.
精彩评论