Tengo una expresión regular de JavaScript que básicamente encuentra palabras de dos letras. El problema parece ser que interpreta caracteres acentuados como límites de palabras. De hecho, parece que¿Cómo puedo hacer una expresión regular que tenga en cuenta los caracteres acentuados?
Un límite de palabra ("\ b") es un punto entre dos personajes que tiene un "\ w" en un lado de ella y un "\ W" en la otra lado de la misma (en cualquier orden), contando los caracteres imaginarios de al comienzo y al final de la cadena como que coincide con "\ W". AS3 RegExp to match words with boundry type characters in them
Y puesto
\ w coincide con cualquier carácter alfanumérico (caracteres de palabra) que incluye subrayado (abreviatura de [a-zA-Z0-9_]). \ W coincide con cualquier no-palabra caracteres (abreviatura de [^ a-zA-Z0-9_]) http://www.javascriptkit.com/javatutors/redev2.shtml
caracteres acentuados, obviamente, no se tienen en cuenta. Esto se convierte en un problema con palabras como Montréal
. Si el é
se considera un límite de palabra, entonces al
es una palabra de dos letras. He intentado hacer mi propia definición de un límite de palabras que permitiría caracteres acentuados, pero al ver que un límite de palabras no es ni siquiera un carácter, no sé exactamente cómo encontrarlo ...
Cualquier ¿ayuda?
Este es el código JavaScript relevante, que busca userInput
y encuentra palabras de dos letras usando la expresión regular de re_state
:
var re_state = new RegExp("\\b([a-z]{2})[,]?\\b", "mi");
var match_state = re_state.exec(userInput);
document.getElementById("state").value = (match_state)?match_state[1]:"";
Eso no cambia nada ... – Shawn
Sí, el atributo de tipo no es ni siquiera en HTML5, ya que ISN No es compatible con navegadores, es un error que las personas cometieron al interpretar la especificación. La metaetiqueta del juego de caracteres funciona, pero el juego de caracteres en los enlaces no es real. –
@ Rich Bradshaw: Tengo en mi sección de encabezado. ¿Es eso lo que quieres decir? – Shawn