Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 标准化文件名字符串,删除重音符号和特殊字符_Ruby On Rails_Ruby_Regex_String_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 标准化文件名字符串,删除重音符号和特殊字符

Ruby on rails 标准化文件名字符串,删除重音符号和特殊字符,ruby-on-rails,ruby,regex,string,ruby-on-rails-3,Ruby On Rails,Ruby,Regex,String,Ruby On Rails 3,我试图找到一种方法来规范化字符串,将其作为文件名传递 到目前为止,我有: my_string.mb_chars.normalize(:kd).gsub(/[^\x00-\x7F]/n, '').downcase.gsub(/[^a-z]/, '_') 但是第一个问题:性格。我想这种方法有更多的问题 我不控制名称,名称字符串可以有重音、空格和特殊字符。我想删除所有的重音符号,用相应的字母('e'=>'e')替换重音符号,其余的替换为'.'字符 名称如下: “运动-常规” “圣卡” 我希望它

我试图找到一种方法来规范化字符串,将其作为文件名传递

到目前为止,我有:

my_string.mb_chars.normalize(:kd).gsub(/[^\x00-\x7F]/n, '').downcase.gsub(/[^a-z]/, '_')
但是第一个问题:性格。我想这种方法有更多的问题

我不控制名称,名称字符串可以有重音、空格和特殊字符。我想删除所有的重音符号,用相应的字母('e'=>'e')替换重音符号,其余的替换为'.'字符

名称如下:

  • “运动-常规”
  • “圣卡”
我希望它们像文件名一样,没有空格/特殊字符:

  • “准备工作/例行程序”
  • “圣卡”

感谢您的帮助:)

请查看
ActiveSupport::Indoctor.transliterate
,它对于处理此类字符问题非常有用。请阅读:

然后,你可以做如下事情:

ActiveSupport::Inflector.transliterate my_string.downcase.gsub(/\s/,"_")

不适用于“xxx l'amour”这样的名称。修正:是添加gsub(/“/,”),这也不适用于包含其他标点符号(如逗号)的字符串,可能是