Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   регулярное выражения поиска html-тега (https://javascript.ru/forum/dom-window/64583-regulyarnoe-vyrazheniya-poiska-html-tega.html)

gazman 23.08.2016 09:40

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

var str = "Сайт рыбатекст поможет дизайнеру, верстальщику, 'вебмастеру сгенерировать the sun несколько абзацев более менее осмысленного' текста рыбы на русском языке, а начинающему оратору отточить навык публичных выступлений в домашних условиях. +7(903)-123-45-67 При создании генератора мы использовали небезызвестный универсальный код речей. Текст генерируется абзацами случайным образом от двух до десяти предложений в абзаце, что позволяет сделать текст более +7(912)-124-42-68 привлекательным и живым для визуально-слухового восприятия. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. 'Aenean commodo ligula eget dolor. Aenean massa'. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, <style> justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi.";

var reg = /<style>/g;

document.write(str.match(reg));


не выводится результат на экран.

Manyasha 23.08.2016 10:43

gazman,
match возвращает массив, на сколько я знаю:
var str = "Сайт рыбатекст поможет дизайнеру, верстальщику, 'вебмастеру сгенерировать the sun несколько абзацев более менее осмысленного' текста рыбы на русском языке, а начинающему оратору отточить навык публичных выступлений в домашних условиях. +7(903)-123-45-67 При создании генератора мы использовали небезызвестный универсальный код речей. Текст генерируется абзацами случайным образом от двух до десяти предложений в абзаце, что позволяет сделать текст более +7(912)-124-42-68 привлекательным и живым для визуально-слухового восприятия. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. 'Aenean commodo ligula eget dolor. Aenean massa'. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, <style> justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi.";
var reg = /<style>/g;
alert(str.match(reg)[0]);

ksa 23.08.2016 10:45

Цитата:

Сообщение от gazman
не выводится результат на экран

А что должно быть на экране?

gazman 23.08.2016 14:52

выводиться должно <style>
с помощью массива также не выводится.
другие правила выводит значения (например var reg = /\d/g), но когда пишу треугольные скобки, то ни чего не отображает

ksa 23.08.2016 15:26

Цитата:

Сообщение от gazman
выводиться должно <style>

Т.е. тебе нужно посмотреть какие теги есть в тексте?
Тогда, как вариант...

var str = "Сайт рыбатекст поможет дизайнеру, <b>верстальщику</b>, 'вебмастеру сгенерировать the sun <span>несколько</span> абзацев более менее осмысленного' текста рыбы на русском языке, а начинающему оратору отточить навык публичных выступлений в домашних условиях. +7(903)-123-45-67 При создании генератора мы использовали небезызвестный универсальный код речей. Текст генерируется абзацами случайным образом от двух до десяти предложений в абзаце, что позволяет сделать текст более +7(912)-124-42-68 привлекательным и живым для визуально-слухового восприятия. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. 'Aenean commodo ligula eget dolor. Aenean massa'. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, <style> justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi.";
var reg = /<[^\/]+?>/gm;
alert(str.match(reg));

gazman 23.08.2016 16:22

спасибо. всё хорошо
почему-то через document.write не выводит, а через alert всё хорошо

ksa 23.08.2016 16:54

Цитата:

Сообщение от gazman
почему-то через document.write не выводит, а через alert всё хорошо

Потому как alert может преобразовывать массивы а document.write - нет.

Manyasha 23.08.2016 16:59

Цитата:

Сообщение от gazman (Сообщение 426421)
через document.write не выводит

Нажмите ctrl+u:p
хоть и не понимаю, зачем Вас с document.write, но вот так можно:
<script type="text/javascript">
var str = "Сайт рыбатекст поможет дизайнеру, <b>верстальщику</b>, 'вебмастеру сгенерировать the sun <span>несколько</span> абзацев более менее осмысленного' текста рыбы на русском языке, а начинающему оратору отточить навык публичных выступлений в домашних условиях. +7(903)-123-45-67 При создании генератора мы использовали небезызвестный универсальный код речей. Текст генерируется абзацами случайным образом от двух до десяти предложений в абзаце, что позволяет сделать текст более +7(912)-124-42-68 привлекательным и живым для визуально-слухового восприятия. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. 'Aenean commodo ligula eget dolor. Aenean massa'. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, <style> justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi.";
var reg = /<[^\/]+?>/gm;
document.write(str.match(reg).join(", ").replace(/</g, "&lt;").replace(/>/g, "&gt;"));
 </script>

рони 23.08.2016 18:31

Manyasha,
а без document.write и replace?

gazman 23.08.2016 21:40

я просто проверяю результат через document.write
мне больше нравится чем алерт


Часовой пояс GMT +3, время: 09:14.