Javascript 更好的正则表达式从URL提取Google视频ID
嗨 我使用下面的正则表达式和JS从该url提取这个id 6321890784249785097 但我只从尾巴上切下最后19个字符。我怎样才能做得更防弹?也许有个解释让我学到点什么Javascript 更好的正则表达式从URL提取Google视频ID,javascript,regex,Javascript,Regex,嗨 我使用下面的正则表达式和JS从该url提取这个id 6321890784249785097 但我只从尾巴上切下最后19个字符。我怎样才能做得更防弹?也许有个解释让我学到点什么 url.replace(/.*docId=(\d{19}).*/i,"$1"); 这将剪切docId=后面的19位数字 video[.]google[.]com/googleplayer[.]swf[?]docId=(\d+) 该ID将在参考#1中捕获。如果您只想匹配19位数字,您可以将其与此匹配: video[
url.replace(/.*docId=(\d{19}).*/i,"$1");
这将剪切docId=
后面的19位数字
video[.]google[.]com/googleplayer[.]swf[?]docId=(\d+)
该ID将在参考#1中捕获。如果您只想匹配19位数字,您可以将其与此匹配:
video[.]google[.]com/googleplayer[.]swf[?]docId=(\d{19})
这应该会更好一些:
/^.*docId=(\d+)$/
这将匹配“docId=”之前的所有字符,然后给出url末尾之前的所有数字。这是我在应用程序中用于读取url参数的函数。到目前为止还没有让我失望;) 有关regexp的解释:
- [\&\?]取查询字符串“?”的开头或参数“&”之间的分隔
- “name”将是您案例中参数“docId”的名称
- ([^\]+)使用非和的任何字符。
散列键通常用于单页应用程序。
括号保留内容的引用 - val将是一个数组或null/未定义,val[1]是您要查找的值
video[.]google[.]com/googleplayer[.]swf[?]docId=(\d{19})
urlParam:function(name, w){
w = w || window;
var rx = new RegExp('[\&|\?]'+name+'=([^\&\#]+)'),
val = w.location.href.match(rx);
return !val ? '':val[1];
}