[英]DTube url parser regex
請幫助為d.tube構建正則表達式,以從網址中提取channel_id
和video_id
以下網址可能
https://d.tube/v/channel_id/video_id
https://d.tube/#!/v/channel_id/video_id
https://emb.d.tube/#!/channel_id/video_id
這應該將它們分為兩組: https:\\/\\/(?:emb)?\\.?d.tube\\/v?(?:#!)?\\/?v?\\/?(\\w+)\\/(\\w+)
它首先匹配https
然后匹配兩個正斜杠,這兩個斜杠需要\\
轉義字符。
可選地,它獲取emb
,然后可選地一個.
然后d.tube
,可能是/v
,可能是#!
,可選的另一個/
,可選的另一個v
和/
然后是兩個捕獲組,它們使用字母數字字符,並用/
分隔。
我已經發表了評論以解釋我的觀點,但是下面是您想要的兩種(可能!)不同版本:
https:\\/\\/(?:\\w+\\.)?d.tube\\/.*?\\/([^\\/]*)\\/([^\\/]*)\\n
然后,這將從URL中提取channel_id' and the
video_id`: 注意:此答案是部分從此堆棧溢出答案中復制的 : 如何在JavaScript正則表達式中訪問匹配的組?
var myString = myURL;
var myRegexp = /https:\/\/(?:\w+\.)?d.tube\/.*?\/([^\/]*)\/([^\/]*)\n/g;
var match = myRegexp.exec(myString);
console.log("Channel ID: " + match[0] + "\n" + "Video ID:" + match[1] + "\n");
這是http://regexr.com生成的屏幕截圖(非常有用的實用程序)
雖然此處的解決方案將驗證您是否具有有效的“ d.tube” URL
https:\/\/(?:\w+\.)?d.tube\/.*?\/channel_id/video_id\n
var myString = myURL;
var myRegexp = /https:\/\/(?:\w+\.)?d.tube\/.*?\/channel_id/video_id\n/;
var match = myRegexp.exec(myString);
var isMatch = match != null;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.