Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.08.2010, 08:21
Аспирант
Отправить личное сообщение для igsavenko Посмотреть профиль Найти все сообщения от igsavenko
 
Регистрация: 15.01.2010
Сообщений: 83

регулярные выражения
Подскажите пожалуйста есть строка примерно такого вида, ну в принципе вообще не важно какая строка:
<div><span><a href='foo'>foo<a></span></div> как можно при помощи регулярных выражений получить аттрибут href. Мне нужна только ссылка. Спасибо большое.
Ответить с цитированием
  #2 (permalink)  
Старый 08.08.2010, 10:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

можно так попробовать...
var str = "<div><span><a href='foo'>foo<a></span></div>";
var reg = /href=[\x27\x22]*([^\x27\x22\x3E\s]*)[\x27\x22]*/i;
alert(reg.exec(str)[1]);
Ответить с цитированием
  #3 (permalink)  
Старый 08.08.2010, 14:31
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Можно и покороче:
var str = "<div><span><a href='foo'>foo<a></span></div>";
var reg = /href='(.*)'/i;
alert(reg.exec(str)[1]);

А вообще, обычно такое через свойство .href получают
Ответить с цитированием
  #4 (permalink)  
Старый 12.08.2010, 18:16
Аспирант
Отправить личное сообщение для igsavenko Посмотреть профиль Найти все сообщения от igsavenko
 
Регистрация: 15.01.2010
Сообщений: 83

блин.. забыл указать что на языке php
Ответить с цитированием
  #5 (permalink)  
Старый 12.08.2010, 18:42
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Обязательно на регулярках? А то можно через «родной» HTML-парсер:

$document = DOMDocument();
$document->loadHTML("<div><span><a href='foo'>foo<a></span></div>");
echo $document->getElementsByTagName("a")->item(0)->attr("href");
Ответить с цитированием
  #6 (permalink)  
Старый 15.08.2010, 16:48
Аватар для chippolino
Аспирант
Отправить личное сообщение для chippolino Посмотреть профиль Найти все сообщения от chippolino
 
Регистрация: 24.04.2010
Сообщений: 79

<?php

	$str = "<div><span><a href=\"foo\">foo<a></span></div>";
	$reg = "/href=('|\").*('|\")/i";
	preg_match($reg, $str, $m);
	echo str_replace('href=','',str_replace('"','',$m[0]));
	
?>
Ответить с цитированием
  #7 (permalink)  
Старый 19.05.2013, 23:01
Интересующийся
Отправить личное сообщение для mousesport Посмотреть профиль Найти все сообщения от mousesport
 
Регистрация: 06.04.2011
Сообщений: 11

А у меня на оборот:
<div><span><ul><li>мой пример <a href='foo'><b>нужный_текст_777</b><a></li></ul></span></div>


сделал так:
/мой пример [\s\S]*?<a[^>]*>([\s\S]*?)<\/a>/i

хотел бы получить: нужный_текст_777
но получаю только: 777

подскажите где поправить?

Последний раз редактировалось mousesport, 19.05.2013 в 23:09.
Ответить с цитированием
  #8 (permalink)  
Старый 19.05.2013, 23:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от mousesport
А у меня на оборот:
<div><span><ul><li>мой пример <a href='foo'><b>нужный_текст_777</b><a></li></ul></span></div>
var str = "<div><span><ul><li>мой пример <a href='foo'><b>нужный_текст_777</b></a></li></ul></span></div>"
var reg = /мой пример [\s\S]*?<a[^>]*>([\s\S]*)<\/a>/i;
alert(reg.exec(str)[1]);
Ответить с цитированием
  #9 (permalink)  
Старый 19.05.2013, 23:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

mousesport,
var str = "<div><span><ul><li>мой пример <a href='foo'><b>нужный_текст_777 а_далее ненужный_текст</b></a></li></ul></span></div>"
var reg = /мой пример [\s\S]*?<b[^>]*>(\S*)/i;
alert(reg.exec(str)[1]);
Ответить с цитированием
  #10 (permalink)  
Старый 20.05.2013, 04:05
Аспирант
Посмотреть профиль Найти все сообщения от quirksmode
 
Регистрация: 17.05.2013
Сообщений: 72

/href=('|")(.*?)\$1/i
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные выражения klin Javascript под браузер 5 20.07.2010 14:48
Регулярные выражения maket Общие вопросы Javascript 3 19.07.2010 22:32
Функции поиска и замены строк или регулярные выражения? Armen Общие вопросы Javascript 1 01.01.2010 12:35
Регулярные выражения Never Events/DOM/Window 5 10.07.2009 19:00
Регулярные выражения вытаскивание по шаблону baal1988 Общие вопросы Javascript 27 09.10.2008 10:51