def replace_characters(name)
name.downcase.tr('àáäâãèéëẽêìíïîĩòóöôõùúüûũñç ', 'aaaaaeeeeeiiiiiooooouuuuunc-')
end
我想用普通字符替换特殊字符,但要保持大小写。
示例及其预期输出:
- íhávéspécialchars.jpg//ihavespecialchars.jpg
- ÍHÁVÉSPÉCIALCHÁRS.JPG//IHAVESPECIALCHARS.JPG
- /IMG_4834.JPG///IMG_4834.JPG
目前,它可以很好地替换,但总是将字符串更改为小写。例如:/IMG_4834.JPG ->/img_4834.jpg
最佳答案
你的方法的当前实现总是返回小写字符串,因为它在调用 #tr
之前调用了 #downcase
- 删除 #downcase
应该可以补救这。然后,在不依赖外部库的情况下,您可以修改现有方法以覆盖大写字符:
def replace_characters(name)
name.tr('àáäâãèéëẽêìíïîĩòóöôõùúüûũñçÀÁÄÂÃÈÉËẼÊÌÍÏÎĨÒÓÖÔÕÙÚÜÛŨÑÇ ',
'aaaaaeeeeeiiiiiooooouuuuuncAAAAAEEEEEIIIIIOOOOOUUUUUNC-')
end
关于ruby - 替换字符但保留大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36554182/