Регулярное выражение для поиска 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 ответов
использовать
window.location.pathname
в получить текущий путь (исключая ДВУ.)используйте строку JavaScript
match
метод.использовать регулярное выражение
/^\/product\/(\d+)/
чтобы найти путь, который начинается с /product/, затем одну или несколько цифр (добавитьi
в самом конце для поддержки регистра).-
придумать что-то вроде этого:
var res = window.location.pathname.match(/^\/product\/(\d+)/); if (res.length == 2) { // use res[1] to get the id. }
просто, как альтернатива, сделать это без 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