通过javascript regex验证SoundCloud URL

时间:2013-08-14 08:48:59

标签: javascript regex

我有2个来自soundcloud的网址,我想在.com /(或).sc /后得到一切,我根本不懂正则表达式,我可以做javascript匹配/替换,唯一的问题是http vs https

https://soundcloud.com/ilyao/lyao-lj-mtx-and-lj-mtxs-hair

http://snd.sc/1cvgIjv

非常感谢任何帮助。

这就是我所拥有的,不知道如何进行替换的https,或者这是解决此问题的最佳方法......

function getSoundCloudInfo(url){
    return url.replace("https://soundcloud.com/", "").replace("http://snd.sc/", "");
}

4 个答案:

答案 0 :(得分:7)

function getSoundCloudInfo(url){
  var regexp = /^https?:\/\/(soundcloud\.com|snd\.sc)\/(.*)$/;
  return url.match(regexp) && url.match(regexp)[2]
}

答案 1 :(得分:4)

((https:\/\/)|(http:\/\/)|(www.)|(m\.)|(\s))+(soundcloud.com\/)+[a-zA-Z0-9\-\.]+(\/)+[a-zA-Z0-9\-\.]+    

答案 2 :(得分:4)

为时已晚,但是......

别忘了:

  1. 移动版本(http {s)之后的m.://)
  2. 最后可能的斜线
  3. 有或没有SSL/TLS,因此它可以是httphttps
  4. 有或没有www
  5. 所以,完整的正则表达式是:

    ^(https?:\/\/)?(www.)?(m\.)?soundcloud\.com\/[\w\-\.]+(\/)+[\w\-\.]+/?$

答案 3 :(得分:0)

const FULL_YOUTUBE_REG_EXP = /^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtube\.com\/watch.*v=([a-zA-Z0-9_-]+)/
const SHORT_YOUTUBE_REG_EXP = /^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtu\.be\/([a-zA-Z0-9_-]+)/
const VIMEO_REG_EXP = /^(?:(https?):\/\/)?(?:www\.)?vimeo\.com\/(\d+)/
const SOUNDCLOUD_REGEXP = /^(?:(https?):\/\/)?(?:(?:www|m)\.)?(soundcloud\.com|snd\.sc)\/(.*)$/