normalizeString static method
Normaliza una cadena, quitando acentos y caracteres especiales comunes.
Implementation
static String normalizeString(String input) {
// Mapa de caracteres acentuados y especiales a sus equivalentes sin acento.
const Map<String, String> accentMap = {
'á': 'a', 'é': 'e', 'í': 'i', 'ó': 'o', 'ú': 'u',
'Á': 'A', 'É': 'E', 'Í': 'I', 'Ó': 'O', 'Ú': 'U',
'à': 'a', 'è': 'e', 'ì': 'i', 'ò': 'o', 'ù': 'u',
'À': 'A', 'È': 'E', 'Ì': 'I', 'Ò': 'O', 'Ù': 'U',
'â': 'a', 'ê': 'e', 'î': 'i', 'ô': 'o', 'û': 'u',
'Â': 'A', 'Ê': 'E', 'Î': 'I', 'Ô': 'O', 'Û': 'U',
'ä': 'a', 'ë': 'e', 'ï': 'i', 'ö': 'o', 'ü': 'u',
'Ä': 'A', 'Ë': 'E', 'Ï': 'I', 'Ö': 'O', 'Ü': 'U',
'ñ': 'n', 'Ñ': 'N',
'ç': 'c', 'Ç': 'C',
};
String normalized = input;
// Reemplazar cada carácter acentuado con su equivalente sin acento.
accentMap.forEach((key, value) {
normalized = normalized.replaceAll(key, value);
});
// Opcional: quitar otros caracteres no alfanuméricos si es necesario para el código del cupón.
// Por ejemplo, para permitir solo letras y números:
// normalized = normalized.replaceAll(RegExp(r'[^a-zA-Z0-9]'), '');
return normalized;
}