Регулярка определения главной страницы
Нужно регулярное выражение которое определит главную страницу сайта. При этом интересуют только те главные страницы которые оканчиваются на '/', тоесть:
Код:
http://habrahabr.ru/ Код:
http://habrahabr.ru/index.php var reg = /^https?:\/\/\S*?(\/)/; Это регулярное выражение возвращает(находит) '/' во всех выше перечисленных сайтах, а нужно чтоб только в первых 4. Я конечно пробовал указать '$' чтоб типа искало только когда '/' последний, но не работает. |
url = 'http://www.yandex.ua/#yandex' tst = url.split(/:\/\/[^\/]*\//); if(tst[1]=='')alert('Главная, без дополнений'); if(tst[1]!='')alert('>'+tst[1]+'<'); |
Цитата:
Код:
http://google.com/webhp?.... -> /webhp |
url = 'http://www.yandex.ua/search?...' tst = url.split(/:?[\/]+/); var out=tst[2].split("?")[0]; if(out=='')out='/' if(out!=tst[2]&&(out=='webhp'||out=='search'||out.indexOf('#')==0||out=='/')) { alert('>'+out+'<'); } |
Цитата:
Если главная, tst[1] может быть пустой строкой, а может вообще отсутствовать. А undefined не равно пустой строке. http://javascript.ru/forum/misc/3600...tml#post238235 А зачем вообще split? Проще (и быстрее) просто проверить test-ом или search-ем, только в конец выражения добавть $ |
url = 'http://www.yandex.ua/' tst = url.split(/:\/\/[^\/]*\//); if(tst[1]=='')alert('Главная, без дополнений'); if(tst[1]!='')alert('>'+tst[1]+'<'); url = 'http://www.yand' tst = url.split(/:\/\/[^\/]*\//); if(tst[1]=='')alert('Главная, без дополнений'); if(tst[1]!='')alert('>'+tst[1]+'<'); |
Цитата:
|
Всем спасибо.
Вот регулярное выражение: Код:
/^https?:\/\/[^\/]*(\/(?!.)|\/#(?=.*)|\/webhp(?=\?.*)|\/search(?=\?.*))/ Код:
http://google.com/webhp?.... -> /webhp var result, pattern = /^https?:\/\/[^\/]*(\/(?!.)|\/#(?=.*)|\/webhp(?=\?.*)|\/search(?=\?.*))/; result = 'http://google.com/webhp?....'.match( pattern ); alert( result && result[1] ); result = 'http://google.com/search?... '.match( pattern ); alert( result && result[1] ); result = 'http://google.com/#....'.match( pattern ); alert( result && result[1] ); result = 'http://google.com/'.match( pattern ); alert( result && result[1] ); result = 'http://google.com/...'.match( pattern ); alert( result && result[1] ); result = 'http://google.com/.../'.match( pattern ); alert( result && result[1] ); result = 'http://google.com'.match( pattern ); alert( result && result[1] ); |
Magneto,
Вариант... var result, pattern = /^https?:\/\/[^/]*(\/([^/?.]+|$))/; result = 'http://google.com/webhp?....'.match( pattern ); alert( result && result[1] ); result = 'http://google.com/search?... '.match( pattern ); alert( result && result[1] ); result = 'http://google.com/#....'.match( pattern ); alert( result && result[1] ); result = 'http://google.com/'.match( pattern ); alert( result && result[1] ); result = 'http://google.com/...'.match( pattern ); alert( result && result[1] ); result = 'http://google.com/.../'.match( pattern ); alert( result && result[1] ); result = 'http://google.com'.match( pattern ); alert( result && result[1] ); |
Должна возвращать только webhp или search, на все другие варианты не должна реагировать.
var result, pattern = /^https?:\/\/[^/]*(\/([^/?.]+|$))/; result = 'http://google.com/aaa?....'.match( pattern ); alert( result && result[1] ); |
Magneto,
можно так )) var result, pattern = /^https?:\/\/[^/]*(\/(#|webhp|$|search))/; result = 'http://google.com/aaa?....'.match( pattern ); alert( result && result[1] ); |
Часовой пояс GMT +3, время: 20:20. |