Регулярное выражение для поиска id в url

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

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

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

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

или

http://completelydifferentdomain.tdl / product/1/что-то / другое-вещь

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

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

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

3 ответов


  1. использовать window.location.pathname в получить текущий путь (исключая ДВУ.)

  2. используйте строку JavaScript match метод.

  3. использовать регулярное выражение /^\/product\/(\d+)/ чтобы найти путь, который начинается с /product/, затем одну или несколько цифр (добавить i в самом конце для поддержки регистра).

  4. придумать что-то вроде этого:

    var res = window.location.pathname.match(/^\/product\/(\d+)/);
    if (res.length == 2) {
        // use res[1] to get the id.
    }
    

/\/product\/(\d+)/ и получения .


просто, как альтернатива, сделать это без Regex (хотя я признаю, что regex здесь ужасно приятно)

var url = "http://test.example.com//mypage/1/test/test//test";
var newurl = url.replace("http://","").split("/");
for(i=0;i<newurl.length;i++) {
    if(newurl[i] == "") {
     newurl.splice(i,1);   //this for loop takes care of situatiosn where there may be a // or /// instead of a /
    }
}
alert(newurl[2]); //returns 1