Объединение сегментов URL

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом практическом занятии мы изучим, как объединять сегменты URL и нормализовать полученный URL с использованием JavaScript. Практическое занятие проведет вас по процессу использования различных регулярных выражений для удаления двойных косых черточек, добавления правильных косых черточек для протокола, удаления косых черточек перед параметрами, объединения параметров с помощью '&' и нормализации первого разделителя параметров. В конце этого практического занятия вы сможете эффективно объединять и нормализовать сегменты URL с использованием JavaScript.

Объединение и нормализация сегментов URL

Для объединения заданных сегментов URL и нормализации полученного URL следуйте шагам ниже:

  1. Используйте Array.prototype.join(), чтобы объединить сегменты URL.
  2. Используйте серию вызовов String.prototype.replace() с различными регулярными выражениями для нормализации полученного URL путём:
    • удаления двойных косых черточек;
    • добавления правильных косых черточек для протокола;
    • удаления косых черточек перед параметрами;
    • объединения параметров с помощью '&' и нормализации первого разделителя параметров.

Используйте сниппет кода ниже для объединения и нормализации сегментов URL:

const URLJoin = (...args) =>
  args
    .join("/")
    .replace(/[\/]+/g, "/")
    .replace(/^(.+):\//, "$1://")
    .replace(/^file:/, "file:/")
    .replace(/\/(\?|&|#[^!])/g, "$1")
    .replace(/\?/g, "&")
    .replace("&", "?");

Пример использования:

URLJoin("http://www.google.com", "a", "/b/cd", "?foo=123", "?bar=foo");
// 'http://www.google.com/a/b/cd?foo=123&bar=foo'

Резюме

Поздравляем! Вы завершили практическое занятие по объединению сегментов URL. Вы можете выполнить больше практических занятий в LabEx, чтобы улучшить свои навыки.