validator validate test regexp online example javascript regex hebrew

validate - regexp javascript



¿Por qué / w solo coincide con las palabras en inglés en javascript regex? (10)

Eche un vistazo a http://www.regular-expressions.info/refunicode.html .

Parece que no hay / w equivalente para Unicode, pero puede hacer coincidir letras unicode, para que pueda crearlo.

Estoy tratando de encontrar direcciones URL en algunos textos, utilizando el código de JavaScript. El problema es que la expresión regular que estoy usando usa / w para unir letras y dígitos dentro de la URL, pero no coincide con caracteres que no sean inglés (en mi caso, letras hebreas).

Entonces, ¿qué puedo usar en lugar de / w para hacer coincidir todas las letras en todos los idiomas?


Quizás / S (espacio no blanco).



Tenga en cuenta que el W3C especifica los URI (como superconjunto de URL) para permitir solo caracteres US-ASCII. Normalmente, todos los demás caracteres deben representarse mediante una notación porcentual:

En contextos locales o regionales y con la mejora de la tecnología, los usuarios pueden beneficiarse de poder utilizar una gama más amplia de personajes; tal uso no está definido por esta especificación. Los octetos porcentuales codificados (Sección 2.1) se pueden usar dentro de un URI para representar caracteres fuera del rango del juego de caracteres codificado US-ASCII si esta representación está permitida por el esquema o por el elemento de protocolo al que se hace referencia al URI. Dicha definición debe especificar la codificación de caracteres utilizada para asignar esos caracteres a octetos antes de que se codifique porcentualmente para el URI. // URI: sintaxis genérica

Que es lo que generalmente sucede cuando abres una URL con caracteres que no son ASCII en el navegador, se traducen a la notación% AB, que a su vez es US-ASCII.

Si es posible influir en la forma en que se crea el material, la mejor opción sería someter las URL a la función de tipo urlencode () durante su creación.


Creo que estás buscando esta expresión regular:

^[אבגדהוזחטיכלמנסעפצקרשתץףןםa-zA-z0-9/s/./-_////]+$


Acabo de encontrar XRegExp que aún no se ha mencionado y estoy bastante impresionado con él. Es una implementación de expresión regular alternativa, tiene un complemento Unicode y está licenciado bajo la licencia de MIT.

De acuerdo con el sitio web, para unir chalecos Unicode, usarías dicho código:

var unicodeWord = XRegExp("^//p{L}+$"); unicodeWord.test("Русский"); // true unicodeWord.test("日本語"); // true unicodeWord.test("العربية"); // true


Prueba this / p {L} la expresión regular Unicode a letras


El estándar ECMA 262 v3, que define el lenguaje de programación comúnmente conocido como JavaScript, estipula que /w debería ser equivalente a [a-zA-Z0-9_] y que /d debería ser equivalente a [0-9]. /s por otro lado coincide con los espacios en blanco ASCII y Unicode, de acuerdo con el estándar.

JavaScript tampoco admite la sintaxis /p para hacer coincidir elementos Unicode, por lo que no hay una buena forma de hacerlo. Puede hacer coincidir todos los caracteres hebreos con:

[/u0590-/u05FF]

Esto simplemente coincide con cualquier punto de código en el bloque hebreo.

Puede hacer coincidir cualquier carácter de palabra ASCII o cualquier carácter hebreo con:

[/w/u0590-/u05FF]


Porque /w solo coincide con los caracteres ASCII 48-57 (''0'' - ''9''), 67-90 (''A'' - ''Z'') y 97-122 (''a'' - ''z''). Los caracteres hebreos y otros caracteres especiales del idioma extranjero (por ejemplo, umlaut-o o tilde-n) están fuera de ese rango.

En lugar de combinar los caracteres de un idioma extranjero (hay muchos de ellos, en muchos rangos ASCII diferentes), es mejor que busque los caracteres que delinean sus palabras: espacios, comillas y otros signos de puntuación.


Verifique esta pregunta SO sobre JavaScript y Unicode . Parece que la respuesta de Jan Goyvaerts te brinda algo de esperanza.

Editar: Pero parece que todos los navegadores no son compatibles con / p ... de todos modos. Esa pregunta debe contener información útil.