web-dev-qa-db-fra.com

Expression régulière Caractères arabes et chiffres uniquement

Je souhaite que l’expression régulière n’accepte que les caractères arabes, les espaces et les nombres.

Les numéros ne doivent pas obligatoirement être en arabe.

J'ai trouvé l'expression suivante:

^[\u0621-\u064A]+$

qui n'accepte que les caractères arabes alors que j'ai besoin de caractères arabes, d'espaces et de chiffres.

26
moujtahed

Ajoutez simplement 1-9 (au format Unicode) à votre classe de personnages:

^[\u0621-\u064A0-9 ]+$

OU ajoutez \u0660-\u0669 à la classe de caractères correspondant à la plage des nombres arabes :

^[\u0621-\u064A\u0660-\u0669 ]+$
32
Kasrâmvd

Vous pouvez utiliser:

^[\u0621-\u064A\s\p{N}]+$

\p{N} correspond à n'importe quel chiffre numérique unicode.

Pour ne faire correspondre que les chiffres ASCII, utilisez:

^[\u0621-\u064A\s0-9]+$

EDIT: Il vaut mieux utiliser cette expression rationnelle:

^[\p{Arabic}\s\p{N}]+$

Démo RegEx

12
anubhava

vous pouvez utiliser [ء-ي] cela a fonctionné pour moi en javascript Jquery forme.validate rules

pour mon exemple, je veux forcer l'utilisateur à insérer 3 caractères 

[a-zA-Z ء-ي]

10
Abdelwahid Oubaalla

utilisez ceci 

[\u0600-\u06FF]

cela a fonctionné pour moi sur visual studio 

 enter image description here

6
Basheer AL-MOMANI

Avec beaucoup d'essais et de modifications, j'ai obtenu ceci pour les noms persans:

[گچپژیلفقهمو ء-ي]+$
1
Saman Sattari

Simple, utilisez ce code:

^[؀-ۿ]+$

Cela fonctionne pour les nombres pairs arabe/persan.

1
Payam Yasaie

En PHP, utilisez ceci:

preg_replace("/\p{Arabic}/u", 'x', 'abc123ابت');// will replace arabic letters with "x".

Remarque : Pour que \p{Arabic} corresponde aux lettres arabes, vous devez passer le modificateur u (pour unicode) à la fin.

0
evilReiko
function HasArabicCharacters(string text)

{

    var regex = new RegExp(

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

    return regex.test(text);
}
0
saghar.fadaei