Удалить часть текста из текстового поля с помощью функции или разобрать в Ruby - PullRequest
0 голосов
/ 06 января 2012

У меня есть приложение ROR, и я хотел бы немного помочь с анализом в Ruby.У меня есть поле, которое принимает код для вставки из Vimeo.Проблема в том, что стандартный код включает и <iframe> в дополнение к <p> элементам.Я хотел бы знать, есть ли быстрый способ удалить код keep <iframe>, удаляя код, следующий за элементом <p>.

Например: вот код, предоставленный vidmeo <iframe src="http://player.vimeo.com/video/28638402?title=0&amp;byline=0&amp;portrait=0&amp;color=ffffff" width="400" height="170" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe><p><a href="http://vimeo.com/28638402">Youth Lagoon - Montana</a> from <a href="http://vimeo.com/tylertwilliams">Tyler T Williams</a> on <a href="http://vimeo.com">Vimeo</a>.</p>

Я хотел бы удалить код, следующий за элементами

, и оставить следующее:

<iframe src="http://player.vimeo.com/video/28638402?title=0&amp;byline=0&amp;portrait=0&amp;color=ffffff" width="400" height="170" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>

Есть ли в ruby ​​функция, не такая сложная, как анализ регулярных выражений, которая позволила бы мне помочь?Или это мой лучший выбор?Буду признателен за ваши отзывы и любую помощь, которую вы можете оказать.Большое спасибо за ваше время и помощь!

1 Ответ

1 голос
/ 06 января 2012

Я бы порекомендовал вам использовать анализатор HTML, например Nokogiri .Что-то простое, как это:

html   = '<iframe ...>...</p>'
doc    = Nokogiri::HTML(html)
iframe = doc.at_css('iframe').to_html

Просто, надежно и достаточно быстро.

...