仅从字符串中删除锚标记
Remove only anchor tag from string
在控制器中:
str= "Employee <b><a href=http://xyz.localhost.in:3000/admin/company>Uday Das</a></b> has applied for leave."
我想从上面的字符串中删除锚标记,例如 Employee <b>Uday Das</b> has applied for leave.
、
我使用了这个代码:
ActionView::Base.full_sanitizer.sanitize(str)
但是它从字符串中删除了所有 html 标签,结果我得到 Employee Uday Das has applied for leave.
.
注意: 我得到的字符串是动态的,锚标记位置不固定,它可以在字符串中的任何位置。
您可以使用 nokogiri
gem.
类似于:
require 'nokogiri'
doc = Nokogiri::HTML str
node = doc.at("a")
node.replace(node.text)
puts puts doc.inner_html
# <html><body><p>Employee <b>Uday Das</b> has applied for leave.</p></body></html>
或匹配您的确切输出:
puts doc.at("p").inner_html
# Employee <b>Uday Das</b> has applied for leave.
我有一个简单的解决方案:
include ActionView::Helpers::SanitizeHelper
sanitize(str, :tags=>["b"])
对于链接,您可以使用 ActionView::Helpers::SanitizeHelper
中的 strip_links
方法
strip_links('<a href="http://www.rubyonrails.org">Ruby on Rails</a>')
# => Ruby on Rails
strip_links('Please e-mail me at <a href="mailto:me@email.com">me@email.com</a>.')
# => Please e-mail me at me@email.com.
strip_links('Blog: <a href="http://www.myblog.com/" class="nav" target=\"_blank\">Visit</a>.')
# => Blog: Visit.
strip_links('<<a href="https://example.org">malformed & link</a>')
# => <malformed & link
在控制器中:
str= "Employee <b><a href=http://xyz.localhost.in:3000/admin/company>Uday Das</a></b> has applied for leave."
我想从上面的字符串中删除锚标记,例如 Employee <b>Uday Das</b> has applied for leave.
、
我使用了这个代码:
ActionView::Base.full_sanitizer.sanitize(str)
但是它从字符串中删除了所有 html 标签,结果我得到 Employee Uday Das has applied for leave.
.
注意: 我得到的字符串是动态的,锚标记位置不固定,它可以在字符串中的任何位置。
您可以使用 nokogiri
gem.
类似于:
require 'nokogiri'
doc = Nokogiri::HTML str
node = doc.at("a")
node.replace(node.text)
puts puts doc.inner_html
# <html><body><p>Employee <b>Uday Das</b> has applied for leave.</p></body></html>
或匹配您的确切输出:
puts doc.at("p").inner_html
# Employee <b>Uday Das</b> has applied for leave.
我有一个简单的解决方案:
include ActionView::Helpers::SanitizeHelper
sanitize(str, :tags=>["b"])
对于链接,您可以使用 ActionView::Helpers::SanitizeHelper
strip_links
方法
strip_links('<a href="http://www.rubyonrails.org">Ruby on Rails</a>')
# => Ruby on Rails
strip_links('Please e-mail me at <a href="mailto:me@email.com">me@email.com</a>.')
# => Please e-mail me at me@email.com.
strip_links('Blog: <a href="http://www.myblog.com/" class="nav" target=\"_blank\">Visit</a>.')
# => Blog: Visit.
strip_links('<<a href="https://example.org">malformed & link</a>')
# => <malformed & link