Javascript SoundCloudURL的正则表达式

Javascript SoundCloudURL的正则表达式,javascript,regex,Javascript,Regex,我只想将我的url与此url匹配 所有可能的组合,如无www的www、http、https 基本上任何与soundcloud音乐URL匹配的输入URL,如 第一部分:-(http,https) 第二部分:-只允许带“-”的字母数字 第三部分:-只允许带“-”的无韵文 到目前为止,我已经尝试过这个正则表达式: /^https?:\/\/(soundcloud\.com|snd\.sc)\/(.*)$/ 请帮助一个选项是从JavaScript创建一个新的锚元素,将URL分配给href属性,然后检

我只想将我的url与此url匹配 所有可能的组合,如无www的www、http、https

基本上任何与soundcloud音乐URL匹配的输入URL,如

第一部分:-(http,https)
第二部分:-只允许带“-”的字母数字
第三部分:-只允许带“-”的无韵文

到目前为止,我已经尝试过这个正则表达式:

/^https?:\/\/(soundcloud\.com|snd\.sc)\/(.*)$/

请帮助

一个选项是从JavaScript创建一个新的锚
元素,将URL分配给
href
属性,然后检查该锚的
主机
属性:

函数检查URL(输入){
var url=document.createElement('a');
url.href=输入;
返回url.host==“soundcloud.com”| | url.host==“snd.sc”;
}
console.log(检查URL(“https://soundcloud.com/mazzikafree/wegz-molotof-dorak-gai-2020"));
console.log(检查URL(“https://snd.sc/mazzikafree/wegz-molotof-dorak-gai-2020"));

console.log(检查URL(“http://www.google.com"));
我想你可能忘记了在正常的
斜杠
字符之前的
反斜杠
。 试试这个:

^https?:\/\/(soundcloud.com|snd.sc)\/(.*)$
试试这个:

^https?:\/\/(soundcloud.com|snd.sc)\/(.*)$
var re=/^(https?:\/\/)?(www\)?(soundcloud\.com | snd\.sc)\/*$/
我测试了以下内容:

  • 有无www
  • http,https,无http说明符(只需soundcloud.com/mazzikave/wegz-molotof-dorak-gai-2020)
  • soundcloud.com或snd.sc
  • 如果需要HTTP说明符,则考虑使用

    var re=/^https?:\/\/(www.)?(soundcloud\.com | snd\.sc)\/*$/
    
    您可以匹配soundcloud.com或snd.sc,然后是一个重复模式,匹配一个
    /
    ,然后是1+个单词字符

    单词chars部分本身也有一个与
    -
    和1+单词chars匹配的重复部分

    如果您只想匹配字母数字,您可以使用
    [a-zA-Z0-9]
    而不是
    \w
    ,后者也可以匹配
    \u

    ^https?:\/\/(?:soundcloud\.com|snd\.sc)(?:\/\w+(?:-\w+)*)+$
    
    解释

    • ^https?:\/\/(?:soundcloud.com | snd\.sc)
      匹配协议并选择soundcloud或snd
    • (?:
      非捕获组
      • \/\w+
        匹配
        /
        和1+字字符
      • (?:-\w+*
        重复0+次匹配
        -
        和1+字字符
    • )+
      关闭组并重复1+次,以匹配至少一个
      /
      零件
    • $
      字符串结尾

    是的,正则表达式应该可以在javascript上工作。它说是语法错误。我应该如何在javascipt中使用?。另外,如果中间部分包含“-”,该怎么办?嗨,蒂姆,我们只是在这里检查域吗?。或者我们正在检查完整的URL。Tim,想检查输入的URL是否与我给出的soundcloud URL格式匹配。好的……我已经更新了我的答案,使其更加明显。Tim,请看一下问题。它说输入URL应该和声音云URL的格式匹配(我已经指定)。你只是在检查域名。你的答案通过了这个案例:这不是一个有效的。请先参考格式。然后可能是由于其他原因。在这里你可以看到它被测试过。还要确保删除
    ^
    字符前面的
    斜杠
    !您好,请检查以下内容:***9348*$\\\\\\*kafree/wegz-molotof-dorak-gai-2020,这不是一个有效的案例,您的答案在此返回一个匹配项。请阅读URL的格式(第一部分,第二部分,第三部分)啊,我明白了:试试这个
    ^https:\/\/(soundcloud.com\snd\.sc)(\/?\w+-\w+)*$
    你还忘了在你的
    字符前面加一个
    反斜杠。另外,我想知道,我们是否可以在youtube URL的情况下也这样做?。