2012-05-03 6 views
0

Я НИКОГДА не был хорошим с регулярными выражениями, несмотря на мои усилия. Может кто-то пожалуйста, помогите мне, что я пытаюсь соответствовать ссылки в этом формате:Regex on url in Javascript

"/year/monthnum/day/postname/" 

так:

"2012/05/03/whatever-the-text-here" 

с помощью:

if(window.location.pathname.match(...)) 
{ 
//do something 
} 

Я попробовал пару но я просто ужасен с регулярным выражением ... Может ли кто-нибудь помочь мне здесь?

ответ

3

http://regexr.com?30ram

if(window.location.pathname.match(/\/?[0-9]{4}\/[0-9]{1,2}\/[0-9]{1,2}\/.+$/)) 

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

+0

это будет работать, если нет косой черты также? – Alex

+0

@Alex теперь да .... –

+0

Awesome .. спасибо большое Royi, однажды я найду время провести целый день, чтобы схватить с регулярным выражением, но это всегда было минное поле для меня .. – Alex

1

Попробуйте это:

if (/(?:(?:\d{4})[\\\/](?:\d{2})[\\\/](?:\d{2})[\\\/])([^\\\/]+)/m.test(subject)) { 
    // Successful match 
} else { 
    // Match attempt failed 
} 
+1

@stema: Правильно, но он может поддерживать и косые черты, отсюда усилие! – Cylian

+0

эй Cylian, спасибо за вашу помощь, я пошел с другим просто потому, что понимаю, что происходит лучше, чем немного, потому что я слишком плохо разбираюсь в регулярном выражении, но мне будет легче, если мне нужно будет работать с ним – Alex

+0

@Alex: Добро пожаловать. Вы можете посетить [здесь] (http://www.regexbuddy.com/) для ссылки на RegEx. – Cylian