Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.12.2012, 11:33
Интересующийся
Отправить личное сообщение для vivalaakam Посмотреть профиль Найти все сообщения от vivalaakam
 
Регистрация: 07.02.2012
Сообщений: 14

Обернуть текст
Добрый день.
Помогите разобраться со следующей ситуацией=)
есть строка html, к примеру "text<span>abc</span>" (span может и отсутсвовать) , и нужно текст до span обернуть <a>. Пробовал регулярными выражениями, но в них не очень силен

"text abc<span>span text</span>".replace(/^(?:(.+)(?=(<span(?:.*)>)))|(?:(.+)(?!(<span)))$/gi , "<a>$1</a>$2")

выводит "<a>text abc</a><span>span text</span><a></a>", если без span, выведет "<a></a>"

Есть идеи как можно решить?
Ответить с цитированием
  #2 (permalink)  
Старый 27.12.2012, 12:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

vivalaakam,
Вариант ...
var str =  "text abc<span>span text</span>";
str = str.replace(/(\w+?)(?=<span>|$)/gi , "<a>$1</a>");
alert(str);
str =  "text abc";
str = str.replace(/(\w+?)(?=<span>|$)/gi , "<a>$1</a>")
alert(str);
Ответить с цитированием
  #3 (permalink)  
Старый 27.12.2012, 12:55
Интересующийся
Отправить личное сообщение для vivalaakam Посмотреть профиль Найти все сообщения от vivalaakam
 
Регистрация: 07.02.2012
Сообщений: 14

рони, спасибо. Только вот как его заставить искать с самого начала строки?
Ответить с цитированием
  #4 (permalink)  
Старый 27.12.2012, 13:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

vivalaakam,
var str =  "text abc<span>span text</span>";
str = str.replace(/^([a-z ]+?)(?=<span>|$)/gi , "<a>$1</a>");
alert(str);
str =  "text abc";
str = str.replace(/^([a-z ]+?)(?=<span>|$)/gi , "<a>$1</a>")
alert(str);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
Отследить клик по дочернему объекту AllanZ jQuery 3 05.09.2012 12:38
Выравнять три дива в одной строке debugx (X)HTML/CSS 9 06.10.2011 12:03
Вопрос по относительному позиционированию DIV XPOMOB (X)HTML/CSS 11 15.07.2009 17:02