6

我有 2 个来自 soundcloud 的 url,我想在 .com/(or).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

4 回答 4

7
function getSoundCloudInfo(url){
  var regexp = /^https?:\/\/(soundcloud\.com|snd\.sc)\/(.*)$/;
  return url.match(regexp) && url.match(regexp)[2]
}
于 2013-08-14T09:42:28.613 回答
6

为时已晚,但...

不要忘记:

  1. 移动版(m.在 http(s):// 之后)
  2. 最后可能的斜线
  3. 有或无SSL/TLS,所以它可以是httphttps
  4. 有还是没有www

所以,完整的正则表达式是:

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

于 2016-12-14T11:20:31.223 回答
4
((https:\/\/)|(http:\/\/)|(www.)|(m\.)|(\s))+(soundcloud.com\/)+[a-zA-Z0-9\-\.]+(\/)+[a-zA-Z0-9\-\.]+    
于 2014-09-22T10:50:29.610 回答
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)\/(.*)$/
于 2020-08-11T12:54:40.457 回答