我在Rails中有一系列HTML.我想在不包括HTML标记的特定字符数之后截断字符串.此外,如果分割恰好落在打开和关闭标签的中间,我想关闭打开标签/s,例如;

html = "123<a href='#'>456</a>7890"
truncate_markup(html, :length => 5) --> "123<a href='#'>45</a>"

推荐答案

有两种完全不同的解决方案,它们都有相同的名称:truncate_html

  1. https://github.com/ianwhite/truncate_html:这是一个gem,使用html解析器(nokogiri)
  2. https://github.com/hgmnz/truncate_html:这是你放在助手目录中的文件.它使用正则表达式,没有依赖项.

Ruby-on-rails相关问答推荐

删除链接不起作用,重定向 echo 示 Ruby

将参数传递给视图中的嵌入操作时遇到问题

为什么总是有东西在我的 mac 上的 5000 端口运行

正确更新其他列的更新列

使用 Ruby On Rails 的多个用户模型,并设计有单独的注册路由,但只有一个共同的登录路由

Rails 5:如何从数据库中删除列?

如何将动态 Ruby 代码嵌入到 Slim 模板中的javascript部分?

如何在 rails 中指定和验证枚举?

如何更改 Heroku 应用程序的 DATABASE_URL

将 Amazon SES 与 Rails ActionMailer 结合使用

机械师 vs FactoryGirl - 优点和缺点

如何按值按降序对哈希进行排序并在 ruby​​ 中输出哈希?

Rails 错误:无法批量分配受保护的属性

Rails:使用 gem 卸载特定版本的库

登录delay_job?

过滤器在渲染之前但在控制器之后执行?

Rails Associations - has_many => :through - 但相同的模型

设计:在注册期间禁用密码确认

如何在rails中正确使用单选按钮?

是否可以输出rake db:migrate产生的 SQL 更改脚本?