Regex для поиска идентификатора в url

У меня есть следующий URL:

http://example.com/product/1/something/another-thing

Хотя это также может быть:

http://test.example.com/product/1/something/another-thing

или

http: //completelydifferentdomain.tdl/product/1/ something / another-thing

И я хочу получить номер 1 (id) из URL-адреса с помощью Javascript.

Единственное, что всегда будет одинаковым, это / product . Но у меня есть другие страницы, где в URL-адресе также есть / product , но не в начале пути.

Как будет выглядеть регулярное выражение?

7
задан PeeHaa 24 May 2011 в 22:05
поделиться

1 ответ

Я хотел бы предложить другую опцию.

.match(/\/(\d+)+[\/]?/g)

Это возвратило бы все соответствия подарка идентификатора.

Пример:

var url = 'http://localhost:4000/#/trees/8/detail/3';

    // with slashes
    var ids = url.match(/\/(\d+)+[\/]?/g);
    console.log(ids);

    //without slashes
    ids = url.match(/\/(\d+)+[\/]?/g).map(id => id.replace(/\//g, ''));
    console.log(ids);

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

, Чтобы просто получить первый результат Вы могли удалить g модификатор:

 .match(/\/(\d+)+[\/]?/)

var url = 'http://localhost:4000/#/trees/8';


var id = url.match(/\/(\d+)+[\/]?/);
//With and without slashes
console.log(id);
идентификатор без наклонных черт был бы в своей стихии, потому что это - первая группа, найденная в полном соответствии.

Hope это помогает людям.Удачи!

0
ответ дан 6 December 2019 в 11:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: