Как убрать URL guid и использовать вплоть до guid в случае переключения в Javascript / jquery? - PullRequest
0 голосов
/ 14 мая 2019

Как я могу использовать регистр с путевым именем и убрать guid, который в конечном итоге присоединяется к URL?

вот что я использовал:

* когда приходит GUID, яЯ хочу убрать его из URL и по-прежнему использовать регистр переключателя для целевого URL - GUID.Есть ли способы сделать это?

var pushState = history.pushState;

function test(path) {
  switch (path) {
   case '/url here':
      //execute code
   break;
   case 'url here' +*GUID GETS ADDED HERE :
      //execute code
   break;
history.pushState = function() {
  pushState.apply(history, arguments);
 test(document.location.pathname);
};

Ответы [ 2 ]

1 голос
/ 14 мая 2019

Вам необходимо использовать регулярные выражения (регулярные выражения) , чтобы проверить наличие GUID. Учитывая URL https://www.example.com/be96b17b-0552-4d3a-8020-783d4430dd15, вы строите регулярное выражение

let guidRegex = /\w{8}\-\w{4}\-\w{4}\-\w{4}\-\w{12}/

\w означает совпадение символов a-z, A-Z, 0-9 и _ {x} означает совпадение именно с таким количеством символов, поэтому 8 символов a-zA-Z0-9, за которыми следует дефис, за которыми следуют 4 символа a-zA-Z0-9 и так далее. Идентификаторы GUID следуют схеме 8-4-4-4-12

Чтобы проверить наличие guid в URL, вы будете использовать regex.test like guidRegex.test(url), который вернет true или false. Для извлечения guid вы будете использовать regex.exec подобно guidRegex.exec(url), который будет возвращать массив, первым элементом которого будет извлеченная строка.

Возможно, вам придется оценить наличие GUID вне регистра переключателя и использовать это логическое значение, чтобы определить, какой блок кода следует выполнить.

0 голосов
/ 14 мая 2019

попробуй

switch (true) {
  case 'http://example.com' == path:
    console.log('url');
  break;
  case path.match("http://example.com/") && /[\w-]{36}/.test(path):
    console.log('url with guid');
  break;
}

var pushState = history.pushState;

function test(path) {

    switch (true) {
      case 'http://example.com' == path:
        console.log('url');
      break;
      case path.match("http://example.com/") && /[\w-]{36}/.test(path):
        console.log('url with guid');
      break;
    }

  // ...
};

test('abc');
test('http://example.com');
test('http://example.com/ca6834e0-d401-46fd-9421-f72b719e99ca');
...