Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 正则表达式从YouTube URL返回开始时间(#t=)_Javascript_Regex_String - Fatal编程技术网

Javascript 正则表达式从YouTube URL返回开始时间(#t=)

Javascript 正则表达式从YouTube URL返回开始时间(#t=),javascript,regex,string,Javascript,Regex,String,我正在寻找一种方法,可以获得如下任何一种URL: http://www.youtube.com/watch?v=Nlwa0ZWrO8g#t=1m30s?someweirdthing http://www.youtube.com/watch?v=Nlwa0ZWrO8g#t=90s&anotherweirdthing http://www.youtube.com/watch?v=Nlwa0ZWrO8g#t=90 要返回如下值: 1m30s 90s 90 使用单个正则表达式是否可以做到这一

我正在寻找一种方法,可以获得如下任何一种URL:

http://www.youtube.com/watch?v=Nlwa0ZWrO8g#t=1m30s?someweirdthing
http://www.youtube.com/watch?v=Nlwa0ZWrO8g#t=90s&anotherweirdthing
http://www.youtube.com/watch?v=Nlwa0ZWrO8g#t=90
要返回如下值:

1m30s
90s
90
使用单个正则表达式是否可以做到这一点?

我将使用
.split()

对于正则表达式,您可以使用:

/#t=([^&$?]+)/
我会使用
.split()

对于正则表达式,您可以使用:

/#t=([^&$?]+)/
找到捕获组1的值,它将返回

1m30s
90s
90
也就是说,按照Blender的建议使用Split()可能更好

在javascript中,组匹配与

var youtubeString = "http://www.youtube.com/watch?v=Nlwa0ZWrO8g#t=1m30s?someweirdthing";
var myRegexp      = /youtube.com\S+#t=((\d+m)?(\d+[s]?)?)/g;
var match         = myRegexp.exec(youtubeString);
alert(match[1]);
找到捕获组1的值,它将返回

1m30s
90s
90
也就是说,按照Blender的建议使用Split()可能更好

在javascript中,组匹配与

var youtubeString = "http://www.youtube.com/watch?v=Nlwa0ZWrO8g#t=1m30s?someweirdthing";
var myRegexp      = /youtube.com\S+#t=((\d+m)?(\d+[s]?)?)/g;
var match         = myRegexp.exec(youtubeString);
alert(match[1]);

查看我对URL的编辑,这不适用于您的解决方案。查看我对URL的编辑,这不适用于您的解决方案。