validate test regulares regexp probar online expresiones example ejemplos javascript regex unicode utf-8 word-boundary

test - utf-8 palabra límite regex en javascript



regexp javascript (5)

La afirmación de límite de palabras solo coincide si un carácter de palabra no está precedido o seguido por otro carácter de palabra (entonces ./b. Es igual a /W/w y /w/W ). Y /w se define como [A-Za-z0-9_] . Entonces /w no coincide con los caracteres griegos. Y así no puedes usar /b para este caso.

Lo que podrías hacer es usar esto:

"αβ αβγ γαβ αβ αβ".replace(/(^|/s)αβ(?=/s|$)/g, "$1AB")

En JavaScript:

"ab abc cab ab ab".replace(//bab/b/g, "AB");

correctamente me da:

"AB abc cab AB AB"

Sin embargo, cuando uso caracteres utf-8:

"αβ αβγ γαβ αβ αβ".replace(//bαβ/b/g, "AB");

el operador de límite de palabras no parece funcionar:

"αβ αβγ γαβ αβ αβ"

¿Hay una solución para esto?


No toda la implementación de expresiones regulares de JavaScript tiene soporte para anuncios Unicode, por lo que debe escapar de ella

"αβ αβγ γαβ αβ αβ".replace(//u03b1/u03b2/g, "AB"); // "AB ABγ γAB AB AB"

Para mapear los personajes puedes echar un vistazo a http://htmlhelp.com/reference/html40/entities/symbols.html

Por supuesto, esto no ayuda con el problema del límite de palabras (como se explica en otras respuestas), pero al menos debería permitirle hacer coincidir los caracteres apropiadamente


No todas las implementaciones de RegEx asociadas a los motores de Javascript reconocen el Unicode.

Por ejemplo, el uso de Microsofts JScript en IE está limitado a ANSI.


Necesitaba algo programable y manejar la puntuación, los corchetes, etc.

http://jsfiddle.net/AQvyd/

var wordToReplace = ''買い手'', replacementWord = ''[[BUYER]]'', text = ''Mange 買い手 information. The selected Store and Classification will be the default on the สั่งซื้อ.'' function replaceWord(text, wordToReplace, replacementWord) { var re = new RegExp(''(^|//s|//(|/'|"|,|;)'' + wordToReplace + ''($|//s|//)|//.|/'|"|!|,|;|//?)'', ''gi''); return text.replace(re, replacementWord); }

Escribí un editor de recursos de JavaScript, así que esta es la razón por la que encontré esta página y también la respondí por necesidad, ya que no pude encontrar una expresión regular de parámetros de palabras que funcionara bien para Unicode.


Cuando se trata de palabras Unicode y de lenguaje natural, es probable que desee tener más cuidado con los límites que usar simplemente /b . Vea esta respuesta para detalles e instrucciones.