Regex, чтобы получить номер страницы из URL - PullRequest
1 голос
/ 05 июля 2010

В настоящее время я использую это регулярное выражение для получения номера страницы из URL:

 @"\/(\d+)$";

, который отлично работал для URL, таких как:

/ some_category / 2
/ some_category2 / 323

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

Так что теперь мне нужно регулярное выражение для поддержки:

/ some_category / 2
/ some_category2 / 323
/ some_category2 / 323? A = 1 & b = 2
/ some_category2 / 323? & C = 123 & a = 1 & b = 2

Буду признателен за любую помощь.

Я использую маршрут с подстановочными знаками, поэтому я могу использовать для этого встроенный mvc asp.net.

Ответы [ 3 ]

4 голосов
/ 05 июля 2010

должно быть /(\d+)

Не нужно избегать косой черты. Символ $ был символом конца строки, который не работал, потому что цифры появились до конца строки

2 голосов
/ 05 июля 2010

Если вы используете MVC, зачем вообще нужен Regex для URL?Разве вы не можете просто получить номер в вашем ActionResult?

Предполагая, что ваш маршрут равен

// Default Catch All MapRoute
routes.MapRoute("Default", "{controller}/{action}/{id}", new {
    controller = "Home",
    action = "Index",
    id = UrlParameter.Optional
})

Тогда просто используйте

public ActionResult myAction(int id){
    // get your "number" by using the "id" variable
}
0 голосов
/ 05 июля 2010

Попробуйте это. Работает в JavaScript.

@"/(\d+)\??.*$";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...