MrY*_*iji 5 ruby regex string ruby-on-rails ruby-on-rails-3
我正在尝试找到一种规范化字符串的方法,将其作为文件名传递.
到目前为止我有这个:
my_string.mb_chars.normalize(:kd).gsub(/[^\x00-\x7F]/n, '').downcase.gsub(/[^a-z]/, '_')
Run Code Online (Sandbox Code Playgroud)
但第一个问题: - 性格.我想这种方法存在更多问题.
我不控制名称,名称字符串可以有重音符号,空格和特殊字符.我想删除所有这些,用相应的字母('é'=>'e')替换重音,并用"_"字符替换其余部分.
名字如下:
我希望它们像一个没有空格/特殊字符的文件名:
谢谢您的帮助 :)
Dar*_*evo 10
看一下ActiveSupport::Inflector.transliterate,处理这种字符问题非常有用.在那里阅读:ActiveSupport::Inflector
然后,你可以这样做:
ActiveSupport::Inflector.transliterate my_string.downcase.gsub(/\s/,"_")
Run Code Online (Sandbox Code Playgroud)