def replace_characters(name)
name.downcase.tr('àáäâãèéëẽêìíïîĩòóöôõùúüûũñç ', 'aaaaaeeeeeiiiiiooooouuuuunc-')
end
我想替换正常字符的特殊字符,但保留大小写。
示例及其预期产出:
目前,它正在替换正常,但始终将字符串更改为小写。例如:/ IMG_4834.JPG - > /img_4834.jpg
答案 0 :(得分:6)
您的方法的当前实现始终返回小写字符串,因为它在调用#downcase
之前调用#tr
- 删除#downcase
应该可以解决此问题。然后,不依赖于外部库,您可以修改现有方法以覆盖大写字符:
def replace_characters(name)
name.tr('àáäâãèéëẽêìíïîĩòóöôõùúüûũñçÀÁÄÂÃÈÉËẼÊÌÍÏÎĨÒÓÖÔÕÙÚÜÛŨÑÇ ',
'aaaaaeeeeeiiiiiooooouuuuuncAAAAAEEEEEIIIIIOOOOOUUUUUNC-')
end
答案 1 :(得分:3)
使用I18n#transliterate
irb(main):004:0> I18n.transliterate("àáäâãèéëẽêìíïîĩòóöôõùúüûũñç")
=> "aaaaaeee?eiiiiiooooouuuuunc"