我有一个网址:
http://www.youtube.com/watch?v=JssO4oLBm2s&list=PLGHJ4fVazTpYRZTEhqgurtSH6XlDMIEJM&shuffle=382
编辑:我也不应该将url存储在变量中,我希望它能像这样工作:
$(".videothumb a").live('click', function() {
var URL = < do something to cut the string >
console.log(URL);
return false;
});
我想剪切从“=”开始到“&amp;”结束的URL所以我最终得到一个像这样的字符串:“JssO4oLBm2s”。
我只知道slice()函数,但我相信只需要一个数字作为起点和终点。
答案 0 :(得分:1)
使用.split()
将提供基于位置的解决方案,该解决方案将失败参数更改的顺序。相反,我认为您正在寻找的是名为v
的参数的值,因为您可以使用简单的正则表达式
'http://www.youtube.com/watch?v=JssO4oLBm2s&list=PLGHJ4fVazTpYRZTEhqgurtSH6XlDMIEJM&shuffle=382'.match('[?&]v=(.*?)(&|$)')[1]
答案 1 :(得分:1)
尝试
'http://www.youtube.com/watch?v=JssO4oLBm2s&list=PLGHJ4fVazTpYRZTEhqgurtSH6XlDMIEJM&shuffle=382'
.split('=')[1] // 'JssO4oLBm2s&list'
.split('&')[0] // 'JssO4oLBm2s'
或者,如果您想确保获得v
参数,
var v, args = 'http://www.youtube.com/watch?v=JssO4oLBm2s&list=PLGHJ4fVazTpYRZTEhqgurtSH6XlDMIEJM&shuffle=382'.split("?")[1].split('&');
for(var i = args.length-1; i>=0; --i) {
var data = args[i].split('=');
if(data[0]==='v') { v = data[1]; break; }
}
答案 2 :(得分:0)
使用.split()
。为清晰起见,分为2行
var first = "http://www.youtube.com/watch?v=JssO4oLBm2s&list=PLGHJ4fVazTpYRZTEhqgurtSH6XlDMIEJM&shuffle=382".split('=')[1]
var result = first.split('&')[0]; //result - JssO4oLBm2s
答案 3 :(得分:0)
v = 'JssO4oLBm2s&list=PLGHJ4fVazTpYRZTEhqgurtSH6XlDMIEJM&shuffle=382';
var vamploc = v.indexOf("&");
vstring = v.substr(0, vamploc);
您可以稍微使用代码来优化它,但一般概念可以工作。
答案 4 :(得分:0)
使用Regexp (?:v=)(.+?)(?:&|$)
"http://www.youtube.com/watch?v=JssO4oLBm2s&list=PLGHJ4fVazTpYRZTEhqgurtSH6XlDMIEJM&shuffle=382".match('(?:v=)(.+?)(?:&|$)')[1]
<小时/> 参考