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]   

> Без описания
netwixell
Отправлено: 11 Сентября, 2016 - 10:18:39
Post Id


Частый гость


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


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

[+]


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']
 
 Top
IllusionMH
Отправлено: 11 Сентября, 2016 - 18:11:12
Post Id



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


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


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




netwixell, регулярками это делать не благодарное дело. Лучше уже запихнуть в DocumentFragment, и штатными средствами работы с DOM это делать
 
 Top
Fart
Отправлено: 12 Сентября, 2016 - 07:25:05
Post Id



Посетитель


Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016  


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




что то попробовал наваять по сабжу. и согласно описанию ниже элегантной регулярки я лично не смог. так как не могу сейчас сказать, что будет происходить у тебя в френт-энде, как ошибки могут быть, как строго скрипты формируют верстку и так далее и тому подобное.

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

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

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

var t = '<div class=class><p><b>текст</b> </dfgdf g </p> dfg </dfgd f </div> dgdfg</dg'; сделал посложнее так как могут быть ошибки и учел их в скрипте

(Отредактировано автором: 12 Сентября, 2016 - 12:36:35)

 
 Top
Fart
Отправлено: 12 Сентября, 2016 - 12:29:50
Post Id



Посетитель


Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016  


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




добавлю по сабжу:

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

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


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

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

(Отредактировано автором: 12 Сентября, 2016 - 12:33:30)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB