He aquí un fragmento de diversión me encontré hoy:a juego con los caracteres acentuados Javascript expresiones regulares
/\ba/.test("a") --> true
/\bà/.test("à") --> false
Sin embargo,
/à/.test("à") --> true
En primer lugar, wtf?
En segundo lugar, si quiero hacer coincidir un carácter acentuado al comienzo de una palabra, ¿cómo puedo hacer eso? (Realmente me gustaría evitar el uso de selectores over-the-top como /(?:^|\s|'|\(\) ....
)
La respuesta a su WTF es que Javascript no maneja Unicode correctamente en las expresiones regulares. Ver [el estándar] (http://unicode.org/reports/tr18/#Compatibility_Properties) para ver cómo se supone que funciona. O use un lenguaje que cumpla con los estándares en este sentido. Solo por nombrar algunas ... en expresiones regulares de Perl, PHP, PCRE e ICU, '" à "' sin duda coincide con el patrón '/ \ bà /'. Son mucho mejores para el trabajo Unicode. – tchrist
es posible que desee eliminar acentos y luego haga una simple comprobación [a-z]. ver http://stackoverflow.com/questions/990904/javascript-remove-accents-in-strings –