JavaScript

Truco: Validar palabras con acentos mediante expresiones regulares

Uno de los problemas con los que nos podemos encontrar a la hora de validar nombres mediante el uso de expresiones regulares son los acentos. Debido a que las expresiones regulares nacieron pensando únicamente para trabajar en inglés. Generalmente para validar las cadenas que contienen letras se usa el patrón a-zA-Z, pero éste ignora los acentos y otros caracteres, como ç, que sí existen en otros idiomas. Veamos cómo podemos identificar y validar palabras con acentos mediante expresiones regulares.

El uso de Unicode para identificar acentos

Para identificar los acentos en una cadena de texto se puede usar el estándar Unicode. En este estándar los caracteres acentuados que se emplean en los idiomas latinos se pueden encontrar en el rango \u00C0-\u017F. Así si se incluyen estos valores en la expresión regular se pueden conseguir validar nombres con acentos. Así se puede validar nombres latinos que contengan acentos u otros caracteres, algo que se puede ver en el siguiente ejemplo.

const name = "Champiñón"

console.log(/^[a-zA-Z]+$/.test(name)) // false
console.log(/^[a-zA-Z\u00C0-\u017F]+$/.test(name)) // true

donde se puede ver que la palabra champiñón no sería válida en el primer caso y sí en el segundo.

Agregar espacios en blanco

En el caso de necesitar que también se tengan en cuenta los estaciones en blanco se puede conseguir añadiendo simplemente \s a la cadena. Funcionamiento que se pueden comprobar en el siguiente ejemplo.

const name = "Champiñón común"

console.log(/^[a-zA-Z]+$/.test(name)) // false
console.log(/^[a-zA-Z\u00C0-\u017F]+$/.test(name)) // false
console.log(/^[a-zA-Z\u00C0-\u017F\s]+$/.test(name)) // false

Conclusiones

En esta entrada hemos visto cómo validar palabras con acentos mediante expresiones regulares, para lo que hemos necesitado usar el estándar Unicode.

Imagen de Theodor Moise en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Truco

Recent Posts

Gini, KS y AUC: Cómo Medir la Calidad de un Modelo de Credit Scoring

Cuando un analista de riesgo presenta un nuevo scorecard ante el comité de dirección, la…

1 día ago

Curiosidad: De dónde vienen foo, bar y foobar

Si revisáis código o documentación de otros programadores, tarde o temprano os toparéis con dos…

6 días ago

BG/NBD + Gamma/Gamma: el modelo probabilístico para CLV en compras continuas

Los dos artículos anteriores cubrieron el CLV clásico —una fórmula útil pero que trata a…

1 semana ago

Errores habituales al trabajar con DataFrames grandes en Pandas (y cómo evitarlos)

Hay un momento muy concreto en la vida de casi todo análisis: el código que…

2 semanas ago

Champion vs Challenger: Cómo los Bancos Validan Modelos Nuevos antes de Ponerlos en Producción

Has construido un nuevo modelo de credit scoring. Las métricas de validación son mejores que…

2 semanas ago

Cómo Comparar Dos Hipotecas con Todos los Gastos Incluidos

Comparar dos hipotecas parece sencillo: la que tenga el TIN más bajo es la mejor…

3 semanas ago

This website uses cookies.