Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Created by Huynh Quang Thao on 1/3/17.
- module AccentHelper
- @@accent_maps = { ['a', 'á', 'à', 'ả', 'ã', 'ạ'] => 'a',
- ['ă', 'ắ', 'ằ', 'ẳ', 'ẵ', 'ặ'] => 'a',
- ['â', 'ấ', 'ầ', 'ẩ', 'ẫ', 'ậ'] => 'a',
- ['e', 'é', 'è', 'ẻ', 'ẽ', 'ẹ'] => 'e',
- ['ê', 'ế', 'ề', 'ể', 'ễ', 'ệ'] => 'e',
- ['i', 'í', 'ì', 'ỉ', 'ĩ', 'ị'] => 'i',
- ['y', 'ý', 'ỳ', 'ỷ', 'ỹ', 'ỵ'] => 'y',
- ['o', 'ó', 'ò', 'ỏ', 'õ', 'ọ'] => 'o',
- ['ô', 'ố', 'ồ', 'ổ', 'ỗ', 'ộ'] => 'o',
- ['ơ', 'ớ', 'ờ', 'ở', 'ỡ', 'ợ'] => 'o',
- ['u', 'ú', 'ù', 'ủ', 'ữ', 'ụ'] => 'u',
- ['ư', 'ứ', 'ừ', 'ử', 'ữ', 'ự'] => 'u',
- ['d', 'đ'] => 'd',
- ['A', 'Á', 'À', 'Ả', 'Ã', 'Ạ'] => 'A',
- ['Ă', 'Ắ', 'Ằ', 'Ẳ', 'Ẵ', 'Ặ'] => 'A',
- ['Â', 'Ấ', 'Ầ', 'Ẩ', 'Ẫ', 'Ậ'] => 'A',
- ['E', 'É', 'È', 'Ẻ', 'Ẽ', 'Ẹ'] => 'E',
- ['Ê', 'Ế', 'Ề', 'Ể', 'Ễ', 'Ệ'] => 'E',
- ['I', 'Í', 'Ì', 'Ỉ', 'Ĩ', 'Ị'] => 'I',
- ['Y', 'Ý', 'Ỳ', 'Ỷ', 'Ỹ', 'Ỵ'] => 'Y',
- ['O', 'Ó', 'Ò', 'Ỏ', 'Õ', 'Ọ'] => 'O',
- ['Ô', 'Ố', 'Ồ', 'Ổ', 'Ỗ', 'Ộ'] => 'O',
- ['Ơ', 'Ớ', 'Ờ', 'Ở', 'Ỡ', 'Ợ'] => 'O',
- ['U', 'Ú', 'Ù', 'Ủ', 'Ũ', 'Ụ'] => 'U',
- ['Ư', 'Ứ', 'Ừ', 'Ử', 'Ữ', 'Ự'] => 'U',
- ['D', 'Đ'] => 'D'
- }
- def accent_map
- @@map ||= {}
- return @@map if @@map.length > 0
- @@accent_maps.each do |accents, ascii|
- accents.each do |accent|
- @@map[accent] = ascii
- end
- end
- @@map
- end
- def remove_accent(str)
- return nil if str.nil?
- res = ''
- str.each_char do |char|
- substitute = accent_map[char]
- res += substitute.nil? ? str[char] : substitute
- end
- res.gsub(/[^\w\d\s]/, '')
- end
- end
Add Comment
Please, Sign In to add comment