嗨!更好的RegEx从URL中提取GoogleVideo ID
我用这个与JS下面的正则表达式来从URL
http://video.google.com/googleplayer.swf?docId=6321890784249785097
url.replace(/^[^\$]+.(.{19}).*/,"$1");
撷取这个编号6321890784249785097但我只从尾部切过去19个字符。我怎样才能做出更加防弹的?也许有一个解释,以便我学到一些东西?
嗨!更好的RegEx从URL中提取GoogleVideo ID
我用这个与JS下面的正则表达式来从URL
http://video.google.com/googleplayer.swf?docId=6321890784249785097
url.replace(/^[^\$]+.(.{19}).*/,"$1");
撷取这个编号6321890784249785097但我只从尾部切过去19个字符。我怎样才能做出更加防弹的?也许有一个解释,以便我学到一些东西?
这应该会好一点:
/^.*docId=(\d+)$/
这所有字符匹配到“的docId =”,然后给你所有的数字,直到url的结尾。
url.replace(/.*docId=(\d{19}).*/i,"$1");
这削减了19个数字,后面跟着docId=
。
非常感谢。这是开箱即用的。 – Marc 2010-01-22 23:27:24
video[.]google[.]com/googleplayer[.]swf[?]docId=(\d+)
该ID将在参考#1中捕获。如果你只是想匹配19位,您可以在机会来此:
video[.]google[.]com/googleplayer[.]swf[?]docId=(\d{19})
非常感谢您的回答! – Marc 2010-01-22 23:33:35
这里是我在我们的应用程序中读取url参数的函数。到目前为止,它没有让我失望;)
urlParam:function(name, w){
w = w || window;
var rx = new RegExp('[\&|\?]'+name+'=([^\&\#]+)'),
val = w.location.href.match(rx);
return !val ? '':val[1];
}
对于正则表达式的解释:
非常感谢。 – Marc 2010-01-22 23:27:57
我发现这个更好地工作eben: 新regExp(/.* docid =([\ d - ] +)(。*?)/我) 但谢谢! – Marc 2010-03-04 15:31:10