ニコニコ動画のURLの構造確認&動画IDを取得する正規表現(javascript)
要約
ニコ動のURLを入力させた時に、有効なURLかを判定し、動画ID抽出、URLを綺麗に揃えるスクリプト
経緯
ニコ動にある動画のIDは多くは sm********
だと思うが、歴史的には多くの英数2字が存在するらしい。
また、数字部分の長さも色んなものがあるらしい。ちゃんと定義したい。
ユーザにニコ動のURLを入力させるときにそのURLの構造が正しいか判定したい、また、短縮URLを直したい場面にどうぞ。
コード
// 対象URL // https://nico.ms/sm******** // https://www.nicovideo.jp/watch/sm******** url = "https://www.nicovideo.jp/watch/sm8628149"; niconicoIdReg = /(?:sm|nm|so|ca|ax|yo|nl|ig|na|cw|z[a-e]|om|sk|yk)\d{1,14}\b/; if (/(nicovideo\.jp|nico\.ms)/.test(url) && !/live/.test(url)) { let videoId = url.match(niconicoIdReg); if (videoId !== null) { console.log("www.nicovideo.jp/watch/" + videoId[0]); } }
参考
動画IDを抽出する正規表現をニコ動のjsから、外枠をqiitaから拝借しました