Member 11052432 Ответов: 1

Как извлечь конкретную строку из заданного URL-адреса


Привет Ребята,

Я столкнулся с ситуацией, когда мне нужно извлечь определенную строку на заданные URL-адреса/сайты :-

предположим, URL-адрес таков :-

www.yahoo.com/sites/spec/aaa/aaa.aspx
https://facebook.com/sites/test/bbb/test.aspx
uat-abc-link/project/sites/fastplay/kwott/site-page/dbs.html
https://amst-tpage/speg/minaral-water/pages/mpower.aspx
www.marklet/mplay/extra.fff/chart.aspx


Теперь моя забота заключается в том, что я хочу получить URL - адрес до spec/test/speg/fastplay/mplay и удалить все после этих слов.

Таким образом, мой результат будет следующим :-

www.yahoo.com/sites/spec
https://facebook.com/sites/test
uat-abc-link/проект/сайты/fastplay
https://amst-tpage/speg
www.marklet/mplay

Обратите внимание, что - не все URL-адреса/ сайты имеют домен .com.

Заранее спасибо....

Что я уже пробовал:

Я попытался сделать подстроку. Но нет никакого конкретного идентификатора, такого как сайты/speg/fastplay/mplay. Так что не в состоянии достичь поставленной задачи.

Afzaal Ahmad Zeeshan

За этим подходом не стоит никакой особой логики. Я ничего не вижу. Где-то вы обрезаете последние два элемента, где-то-три. Иногда в вашей строке есть элемент с" -", который нужно удалить, где-то это только последние два.

Кто просил тебя решить эту проблему?

Похоже на домашнее задание, если да, то попросите своего учителя сделать его разрешимо.

Sinisa Hajnal

По сути, вам нужно либо первое, что после базового url, либо первое, что после baseurl/sites. Не так уж трудно это сделать, попробуйте и дайте нам знать.

1 Ответов

Рейтинг:
4

Karthik_Mahalingam

пробовать

function getUrl(url) {
          var final =
          url = url.toLowerCase(); var target = [];
          var temp = url.split('/');
          if (url.indexOf('.com') > -1) {

              var count = temp.indexOf('sites')
                  count = count + 2;
              for (var i = 0; i < count  ; i++) {
                  target.push(temp[i]);
              }
              final = target.join('/');
          }
          else {

              var count = 2;
              if (url.indexOf('//') > -1)
                  count = count + 2;
              for (var i = 0; i < count; i++) {
                  target.push(temp[i]);
              }
              final = target.join('/');
          }
          return final;
      }
      getUrl('www.yahoo.com/sites/spec/aaa/aaa.aspx')  //www.yahoo.com/sites/spec
      getUrl('https://facebook.com/sites/test/bbb/test.aspx')  //https://facebook.com/sites/test
      getUrl('uat-abc-link/project/sites/fastplay/kwott/site-page/dbs.html') //"uat-abc-link/project/sites/fastplay"
      getUrl('https://amst-tpage/speg/minaral-water/pages/mpower.asp') //"https://amst-tpage/speg"
      getUrl('www.marklet/mplay/extra.fff/chart.aspx') //www.marklet/mplay"