Regex для SoundCloud URL - PullRequest
       6

Regex для SoundCloud URL

2 голосов
/ 28 апреля 2020

Я просто хочу сопоставить свой URL с этим URL всеми возможными комбинациями, такими как www without www, http, https

В основном любой входной URL, который соответствует soundcloud musi c url, например

https://soundcloud.com/mazz-ika-free/wegz-molotof-dorak-gai-2020

ПЕРВАЯ ЧАСТЬ: - https://soundcloud.com/ (http, https) ВТОРАЯ ЧАСТЬ: - Alphanumeri c допускается только '-'. ТРЕТЬЯ ЧАСТЬ: - Aphanumeri c только с разрешенным '-'

Я уже пробовал это регулярное выражение:

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

Пожалуйста, помогите

Ответы [ 4 ]

0 голосов
/ 29 апреля 2020

Вы можете сопоставить либо soundcloud.com, либо snd.s c, за которым следует повторяющийся шаблон, соответствующий /, за которым следуют 1+ слов символов.

Сама часть символов слова также имеет повторяющиеся деталь, соответствующая символам - и 1+.

Если вы хотите сопоставить только alphanumeri c, вы можете использовать [a-zA-Z0-9] вместо \w, что также может соответствовать _

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

Пояснение

  • ^https?:\/\/(?:soundcloud\.com|snd\.sc) Соответствует протоколу или звуковому облаку или snd
  • (?: Группа без захвата
    • \/\w+ Совпадение / и 1+ символов слова
    • (?:-\w+)* Повторение 0+ раз совпадения - и 1+ слов символов
  • )+ Закройте группу и повторите 1+ раз, чтобы найти хотя бы одну / часть
  • $ Конец строки

Regex demo

0 голосов
/ 28 апреля 2020

Я думаю, вы могли забыть backslash до нормального slash символа. Попробуйте это:

^https?:\/\/(soundcloud.com|snd.sc)\/(.*)$
0 голосов
/ 28 апреля 2020

Попробуйте:

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

Я проверил следующее:

  1. С и без www*1007*
  2. http, https, без спецификатора http (просто soundcloud .com / mazzikafree / wegz-molotof-dorak-gai-2020)
  3. soundcloud.com или snd.s c

Если вам требуется спецификатор http, рассмотрите возможность использования

var re = /^https?:\/\/(www\.)?(soundcloud\.com|snd\.sc)\/.*$/
0 голосов
/ 28 апреля 2020

Один из вариантов - создать новый элемент привязки <a> из JavaScript, назначить URL-адрес атрибуту href, а затем проверить свойство host этой привязки:

function checkURL(input) {
    var url = document.createElement('a');
    url.href = input;
    return url.host === "soundcloud.com" || url.host === "snd.sc";
}

console.log(checkURL("https://soundcloud.com/mazzikafree/wegz-molotof-dorak-gai-2020"));
console.log(checkURL("https://snd.sc/mazzikafree/wegz-molotof-dorak-gai-2020"));
console.log(checkURL("http://www.google.com"));

Здесь вы будете проверять, что host либо soundcloud.com, либо snd.sc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...