我可以轻松地在正常字符串的左侧剥去空白区域,如下所示:
" Remove whitespace".lstrip #=> "Remove whitespace"
但如果字符串包含HTML,我无法做到:
@html_str = "<p> Remove whitespace </p>"
@html_safe_str = @html_str.html_safe #=> " Remove whitespace"
@html_safe_str.lstrip #=> "<p> Remove whitespace</p>"
@html_str.html_safe.lstrip
无效。
我不想删除字符串中的所有
。我想在打开
代码
<p>
预期结果:"Remove whitespace "
怎么可能?
答案 0 :(得分:2)
在Rails 4中,strip_tags
已与gsub
合并。您可以使用gsub
删除
。然后,您需要使用sanitizer
提供的ActionView
方法:
@html_str = "<p> Remove whitespace </p>"
str = @html_str.gsub(/<p>\s*( \s*)+/, "<p>")
ActionView::Base.full_sanitizer.sanitize(str).lstrip # => "Remove whitespace "
它适用于Rails 3以及Rails 4。
答案 1 :(得分:1)
你可以这样做:
@html_str = "<p> Remove whitespace</p>"
@html_str = @html_str.gsub(" ", "") => "<p> Remove whitespace</p>"
@html_str1 = ActionController::Base.helpers.strip_tags(@html_str) => " Remove whitespace" #if you are doing this at controller level
@html_str1 = strip_tags(@html_str) => " Remove whitespace" #if you are doing this at view level
#now at the last
@html_str2 = @html_str1.strip => "Remove whitespace"
不久:
@html_str = "<p> Remove whitespace</p>"
@html_str1 = ActionController::Base.helpers.strip_tags(@html_str.gsub(" ", "")).strip => "Remove whitespace"
希望这对你有用
答案 2 :(得分:0)
如果html_safe
将
转换为空格,您可以尝试:
@html_str.html_safe.lstrip
希望有所帮助!
答案 3 :(得分:0)
您可以gsub
使用
@html_str = "<p> Remove whitespace</p>"
@html_str = @html_str.gsub(" ", "")
@html_safe_str = @html_str.html_safe
或强>
如果您完全想删除标签,那么就像Andrey建议的那样,您可以使用strip_tags,但要在控制器中使用它,您需要使用ActionController::Base
@html_str = ActionController::Base.helpers.strip_tags("<p> Remove whitespace</p>").gsub(" ", "").lstrip
将输出:Remove whitespace
希望这有帮助!
答案 4 :(得分:-1)
你可以这样做:
ActionController::Base.helpers.strip_tags(@html_str.html_safe).gsub(" ","").lstrip
# => "Remove whitespace"