Expresión regular para el idioma árabe

Quiero escribir una expresión regular que coincida con cada palabra en una oración:

Mi expresión regular:"\b(\w+)\b"

Resultado: RegExp que coincide con la imagen árabe

Si bien funciona bien con palabras en inglés. No funciona cuando se usan palabras en árabe. ¿Cómo podría lograr la misma hazaña con las palabras árabes?

preguntado el 04 de julio de 12 a las 07:07

3 Respuestas

Prueba esto:-

function HasArabicCharacters(text)
{
    var arregex = /[\u0600-\u06FF]/;
    alert(arregex.test(text));
} 

Conjunto de caracteres árabes de la lista

[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufc3f]|[\ufe70-\ufefc]

Escritura árabe en Unicode:

A partir del Unicode 6.1, la escritura árabe está contenida en los siguientes bloques:

Arabic (0600—06FF, 225 characters)
Arabic Supplement (0750—077F, 48 characters)
Arabic Extended-A (08A0—08FF, 39 characters)
Arabic Presentation Forms-A (FB50—FDFF, 608 characters)
Arabic Presentation Forms-B (FE70—FEFF, 140 characters)
Rumi Numeral Symbols (10E60—10E7F, 31 characters)
Arabic Mathematical Alphabetic Symbols (1EE00—1EEFF, 143 characters)

Los contenidos son tomados de wikipedia- Escritura árabe en Unicode

Respondido 04 Jul 12, 09:07

An expresión regular actualizada con soporte completo, tal como se establece en el último estándar Unicode: [\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufbc1]|[\ufbd3-\ufd3f]|[\ufd50-\ufd8f]|[\ufd92-\ufdc7]|[\ufe70-\ufefc]|[\uFDF0-\uFDFD]. Pruébalo en rubular - Razi Shaban

Sugeriría esto:

\p{InArabic}

Respondido 21 ago 14, 21:08

Lo había probado y estaba correcto. Hasta donde yo sé, es una sintaxis estándar en expresiones regulares. Por ejemplo, puede consultar más detalles aquí. - vahidreza

Puede hacerlo con la función para traducir la lista de caracteres árabes, es muy simple de hacer.

Como me gusta:

function (regexStr) {
   regexStr = replace(regexStr,"ۿ","\u0600");
   regexStr = replace(regexStr,"؀","\u06FF");

   return regexStr;
}

O en otra idea reemplazando [alf] y [ya] para ver la dirección del texto correctamente

var regexStr = "/[[alf]-[ya]]/";

 function (regexStr) {
   regexStr = replace(regexStr,"[alf]","\u0600");
   regexStr = replace(regexStr,"[ya]","\u06FF");

   return regexStr;
}

Respondido 13 Abr '16, 22:04

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.