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
Форумы портала PHP.SU :: Версия для печати :: выбрать первый и последний тег из текста
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » выбрать первый и последний тег из текста

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

1. netwixell - 11 Сентября, 2016 - 10:18:39 - перейти к сообщению
CODE (html):
скопировать код в буфер обмена
  1. var src='<p>мама мыла раму</p>';
  2. var src='<div>мама мыла раму</div>';
  3. var src='<p><div>мама мыла раму</div></p>';
  4. var src='<div><p>мама мыла раму</p></div>';


Есть строка в начале может стоять а может и не стоять тег
если есть тег то нужно узнать что это за тег
В результате получить текст без тега и название самого тега ['текст', 'div']

CODE (javascript):
скопировать код в буфер обмена
  1. var myRe = /<([a-z]+)>([a-z]+)<\/([a-z]+)>/ig;
  2. var myArray = myRe.exec("<div>cdbBdbsbz</div>");


Так работает но если я вставлю в текст <br> то он выберет br и закрывающий div а нужно выбрать только первый и последний тег на то что в середине не обращать внимания

если же текст такой - "а<div></div>б" то он опять же ничего не должен выбрать.
Только в том случае если в начале и в конце есть тег

В данном случае
CODE (javascript):
скопировать код в буфер обмена
  1. var myRe = /<([a-z]+)>([a-z]+)<\/([a-z]+)>/ig;
  2. var myArray = myRe.exec("<div><tags>cdbB<br>dbsbz</tags></div>");

нужно получить ['<tags>cdbB<br>dbsbz</tags>', 'div']
2. IllusionMH - 11 Сентября, 2016 - 18:11:12 - перейти к сообщению
netwixell, регулярками это делать не благодарное дело. Лучше уже запихнуть в DocumentFragment, и штатными средствами работы с DOM это делать
3. Fart - 12 Сентября, 2016 - 07:25:05 - перейти к сообщению
что то попробовал наваять по сабжу. и согласно описанию ниже элегантной регулярки я лично не смог. так как не могу сейчас сказать, что будет происходить у тебя в френт-энде, как ошибки могут быть, как строго скрипты формируют верстку и так далее и тому подобное.

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

Спойлер (Отобразить)

(Добавление)
весь отчет смотри в консоли браузера

var t = '<div class=class><p><b>текст</b> </dfgdf g </p> dfg </dfgd f </div> dgdfg</dg'; сделал посложнее так как могут быть ошибки и учел их в скрипте
4. Fart - 12 Сентября, 2016 - 12:29:50 - перейти к сообщению
добавлю по сабжу:

поиск текста только (но здесь есть одно НО!)

Спойлер (Отобразить)


либо так (в зависимости от ситуации)

Спойлер (Отобразить)

 

Powered by ExBB FM 1.0 RC1