加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 使用ruby gsub和regexp更智能的角色替换

发布时间:2020-12-17 03:43:58 所属栏目:百科 来源:网络整理
导读:我正在尝试为某些文章标题创建类似行为的永久链接,我不想为永久链接添加新的数据库字段.所以我决定写一个帮助器来转换我的文章标题: “O”focoas?“a pornit cruciada,?mpotrivab?rba?ilorzgarci?i”to to ?“邻focoasa-A-pornit-cruciada-impotriva-barbat
我正在尝试为某些文章标题创建类似行为的永久链接,我不想为永久链接添加新的数据库字段.所以我决定写一个帮助器来转换我的文章标题:

“O”focoas?“a pornit cruciada,?mpotrivab?rba?ilorzgarci?i”to to
?“邻focoasa-A-pornit-cruciada-impotriva-barbatilor-zgarciti”.

虽然我想出了如何用连字符替换空格并删除其他特殊字符(除了 – )使用:

title.gsub(/s/,"-").gsub(/[^w-]/,'').downcase

我想知道是否有任何其他方法可以从一个.gsub方法调用替换一个特定的其他字符的字符,所以我不必为所有的链接title.gsub(“?”,“a”)方法我本地化的UTF-8特殊字符.

我正在考虑用所有特殊字符和它们的对应物构建一个哈希,但我还没有弄清楚如何使用regexp的变量.

我在寻找的是:

title.gsub(/s/,"-").gsub(*replace character goes here*).gsub(/[^w-]/,'').downcase

谢谢!

解决方法

我在我的应用程序中使用 Unidecoder gem解决了这个问题:

require 'unidecode'

def uninternationalize(str)
  Unidecoder.decode(str).gsub("[?]","").gsub(/`/,"'").strip
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读