Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как выбрать строку, справа от которой ничего не должно быть?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Rooner
Отправлено: 24 Октября, 2012 - 16:45:12
Post Id


Посетитель


Покинул форум
Сообщений всего: 291
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




С регулярками я не дружу Огорчение
Есть строка steklyannye-dveri. Нужно выбрать ссылку, в адресе которой, присутствует данная строка, при том чтобы справа от этой строки ничего не было кроме слэшей. Т.е. нужна регулярка которая выберет первую ссылку, а не обе
CODE (html):
скопировать код в буфер обмена
  1. <a href="/steklyannye-dveri/">Стеклянные двери</a>
  2. <a href="/steklyannye-dveri/dvuhdvernye/">Двухдверные</a>
 
 Top
EuGen Администратор
Отправлено: 24 Октября, 2012 - 16:51:43
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




PHP:
скопировать код в буфер обмена
  1. preg_match_all('/\<a\s+href\="\/([^\/]+)[\/]{0,1}"\>(.*?)\<\/a\>/sm', $sText, $rgMatches);
  2. //var_dump($rgMatches);

?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Rooner
Отправлено: 24 Октября, 2012 - 18:05:26
Post Id


Посетитель


Покинул форум
Сообщений всего: 291
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




EuGen, а как запихать эту регулярку в jquery выборку? Понимаю что не в том разделе, но все же.
(Добавление)
Как ее поместить например вот сюда:
$('регулярка').fadeOut(1000);
 
 Top
EuGen Администратор
Отправлено: 24 Октября, 2012 - 18:25:26
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Возможно, так (не уверен, как оно отнесется к концу строки):
CODE (javascript):
скопировать код в буфер обмена
  1. $("a:regex(href, /[^/]+[/]{0,1}$)")


Примеры есть еще здесь: http://stackoverflow[dot]com/questio[dot][dot][dot]ular-expressions


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Rooner
Отправлено: 24 Октября, 2012 - 18:41:48
Post Id


Посетитель


Покинул форум
Сообщений всего: 291
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




Скажу зачем мне это нужно: хочу выделить ссылку страницы которая сейчас открыта, простым добавлением к ней класса.

CODE (htmlphp):
скопировать код в буфер обмена
  1. $("a:regex(href, /[^/]+[/]{0,1}$)")

EuGen, а куда тут вставлять строку steklyannye-dveri?

Я сделал, по-другому, мудрено, но работает, просто выложу, вдаваться в код не обязательно. Но мой вариант громоздкий и неуклюжий.
CODE (javascript):
скопировать код в буфер обмена
  1. $(document).ready(function() {
  2.   var adress = window.location.href                 // получаем адрес страницы
  3.   var dovoprosa = adress.split('?')[0];             // берем все что до вопроса
  4.   var str = dovoprosa.replace(/http:\/\//g, '');    // убираем http://
  5.   var pieces = str.split('/');                      // делим на части и помещаем в массив
  6.   var result = [];
  7.   for (var i = 0; i < pieces.length; i++) {
  8.     if (pieces[i] != '') result.push(pieces[i]);    // удаляем пустые элементы массива
  9.   }
  10.   var curalias = result[result.length-1];           // берем последний элемент массива
  11.   $('a[href$='+curalias+'\\/]').addClass('active'); // добавляем к ссылке класс
  12. });

(Добавление)
А еще я наткнулся вот на Селектор с использованием RegExp:
http://jquerylist[dot]ru/utilities/r[dot][dot][dot]-for-jquery[dot]html

Получается, что без этого кода регулярки в jquery не работают?
 
 Top
armancho7777777 Супермодератор
Отправлено: 24 Октября, 2012 - 19:40:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. $('a').filter(function(index) {
  2.     return this.href == window.location.href;
  3. }).addClass('active');
 
 Top
Rooner
Отправлено: 24 Октября, 2012 - 19:56:13
Post Id


Посетитель


Покинул форум
Сообщений всего: 291
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




armancho7777777, хехе ничего себе, круто, спасибо Радость
 
 Top
armancho7777777 Супермодератор
Отправлено: 24 Октября, 2012 - 19:59:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Подмигивание
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB