Регулярное выражении для получения URL с определенного сайта без параметров

Всем привет. Я пытаюсь сделать регулярное выражение для получения URL с определлного сайта без параметров.

Пример:

https://website.net/user/id/my-name-is-jeff2 - подходит

website.net/article/my-name - подходит

www.website.net/book/random/he-is-jeff2 - подходит

https://www.website.net/user/search/my-name-is-jeff2 - подходит

https://website.net/user/id/my-name-is-jeff2?utm_source=google - подходит, но допольнительные параметры не нужны

https://othersite.ru/user/id/my-hame-is-jeff2 - не подходит, тк другой сайт

Для этих целей я использую RegExp. На данный момент есть только регулярное выражение, которое определяет является ли строка ссылкой:

/^(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})/gi

Как можно отредактировать регулярное выражение, чтоб оно работало в моем случае? Буду благодарен любой помощи или совету.


Ответы (1 шт):

Автор решения: Алекс Данилин

let url = 'https://stacksnippets.net/user/id/my-name-is-jeff2'
    url1 = 'stacksnippets.net/article/my-name'
    url2 = '/www.stacksnippets.net/book/random/he-is-jeff2'
    url3 = 'https://www.stacksnippets.net/user/search/my-name-is-jeff2'
    url4 = 'https://stacksnippets.net/user/id/my-name-is-jeff2?utm_source=google'
    url5 = 'https://othersite.ru/user/id/my-hame-is-jeff2'

    let hostame = location.host  

    let chekUrl = url => {
      
      let a = document.createElement('a')
      
      if (url.match(/^http/)) {       
        a.href = url
        a.host = a.host.replace(/^www./, '')
        if(a.host == hostame){
          return a.search ? a.href.split(a.search)[0] : a.href
        } else {
          a.remove()
          return console.log('не наши, вали его'), false
        } 
      } else {
        a.href = url.replace(/^\/www.|^www.|^\//, 'http://')
        if(a.host == hostame){
          return a.search ? a.href.split(a.protocol + '//')[1].split(a.search)[0] : a.href.split(a.protocol + '//')[1] 
        } else {
          a.remove()
         return console.log('не наши, вали его'), false
          
        } 
      }  
    }

    console.log(chekUrl(url))
    console.log(chekUrl(url1))
    console.log(chekUrl(url2))
    console.log(chekUrl(url3))
    console.log(chekUrl(url4))
    console.log(chekUrl(url5))

когда не спится (хотелось бы тЬся), и хочется заниматься фиг пойми чем )

→ Ссылка