Как разобрать параметры из URL-адреса в стиле REST, например: / resourses /: id / - PullRequest
1 голос
/ 28 марта 2020

Без помощи дополнительной библиотеки, есть ли простой способ для анализа параметров из URL-адреса в стиле REST? Я не спрашиваю параметры запроса, которые за ? Я запрашиваю параметры внутри URL, для некоторых примеров,

https://domain.name/resources/:id
https://domain.name/resources/:id/another_resource/:another_id

Я хочу получить :id и :another_id

Зачем мне это нужно?
Если есть система электронной коммерции, пользователь должен проверить свой заказ, это действительно интуитивно он / она может получить доступ с URL https://ecommerce.com/users/:user_id/orders/:order_id

Я знаю, если я делаю с современный JS фреймворк это может быть легко сделано некоторой библиотекой routing, как в Vue.js, которая имеет vue-router

Но то, что я делаю, - это действительно маленький проект, может быть, это просто html с файлом js.

Есть ли какой-нибудь простой способ или алгоритм для анализа параметров по vanilla javascript?

1 Ответ

3 голосов
/ 28 марта 2020

Вы можете сделать это, взглянув на pathname следующим образом:

var pathParts = window.location.pathname.split('/');

Это даст вам массив, содержащий каждую часть пути, которую вы можете затем разбирать по мере необходимости. Если вы пытаетесь сделать это только для списка URL-адресов в виде строк (вместо window.location), вы можете проанализировать строку, содержащую URL-адрес, выполнив следующие действия:

var url = new URL("https://domain.name/resources/:id");
var pathParts = url.href.split('/'); //for example, href will have the url in string type for split
// pathParts = ['resources', ':id'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...