2
votes

RegEx pour la correspondance des modèles de numéros de véhicules saoudiens (KSA)

Quelqu'un peut-il m'aider avec regex for saudia (KSA) Plaques d'immatriculation des véhicules Fondamentalement, je ne peux pas écrire de regex pour le latin car il n'accepte que 17 lettres arabes comme suit avec leur traduction anglaise suivante

ا |  A  
ب |  B  
Ø­ |  J  
د |  D  
ر |  R  
س |  S  
ص |  X  
Ø· |  T  
ع |  E  
Ù‚ |  G  
Ùƒ |  K  
Ù„ |  L  
Ù… |  Z  
Ù† |  N  
هـ |     H  
Ùˆ |  U  
Ù‰ |  V 

car l'utilisateur peut entrer en anglais et en arabe, je ne sais pas pour restreindre les caractères latins alors que je peux restreindre les alphabets anglais avec regex

Le modèle de numéro de voiture Saudia (KSA) contient trois lettres et jusqu'à quatre chiffres

 Voici l'exemple de numéro de licence de voiture plaque


2 commentaires

Pouvez-vous clarifier un peu? Cherchez-vous à restreindre les entrées aux caractères latins ou arabes, mais pas aux deux d'une manière qui constitue un modèle légal (3 caractères latins ou arabes avec jusqu'à 4 caractères latins ou arabes correspondants)?


exactement, je veux restreindre l'utilisateur à entrer dans l'une des langues, donc évidemment, ce ne sera pas une combinaison de l'anglais et de l'arabe.


3 Réponses :


-2
votes

Voici un exemple qui vous restreint aux lettres A, B et C. Vous pouvez remplacer par la liste de lettres spécifique:

\d{4}[ABCD]{3}


0 commentaires

2
votes

Si vous cherchez ce que je pense que vous cherchez, cela acceptera jusqu'à 4 nombres, mais pas de mélange des deux types de caractères dans les blocs de nombres ou de caractères (bien qu'un utilisateur puisse faire des nombres arabes et saoudiens caractères ou chiffres saoudiens et caractères latins).

Ù¢1Ù§2 sÙƒf
alfksjdd
12347844

Entrées légales:

٢٤٧٩sdf
1334aif
1234حكهـ
حكهـ٢٤٧٩
123abc
12abc
1abc

Entrées illégales:

^[\u0660-\u0669|\d]{1,4}[\u0621-\u064A|\w]{3}


2 commentaires

/ ^ [\ u0621- \ u064A | A-Z | a-z] {3} [0-9 | \ u0660 - \ u0669] {1,4} $ / édité comme \ w acceptera même des nombres car il indique une représentation alphanumérique. à part ça, je pense que votre réponse m'a aidé à résoudre mon problème


Bonne prise. J'avais ça à l'origine mais je l'ai tué accidentellement en le modifiant pour être plus propre. J'ai ajouté le dos ou pour la cohérence. Heureux que cela ait aidé.



0
votes

Selon l'exemple d'image donné et

Le modèle de numéro de voiture Saudia (KSA) contient trois lettres et jusqu'à quatre chiffres

Vous pouvez le faire simplement, comme ceci:

\d{1,4}[A-Z\x{0600}-\x{06FF}]{3}

Explication:

\ d {1,4} -> signifie entre 1 et 4 chiffres

[AZ] {3} -> signifie 3 lettres majuscules

Mais si vous devez également inclure des lettres arabes, vous devez utiliser leurs points de code spécifiques Unicode, que vous pouvez trouver ici Unicode pour les lettres arabes .

Malheureusement, je ne connais pas l'arabe, donc je ne peux pas le tester plus que simplement copier-coller certaines des lettres donné.

Mais en théorie, ce serait quelque chose comme ceci:

\d{1,4}[A-Z]{3}

Explication:

\ d {1, 4} -> signifie entre 1 et 4 chiffres

[AZ \ x {0600} - \ x {06FF}] {3} -> signifie 3 unicode caractères avec code entre 0600 et 06FF (selon tableau ci-joint)


0 commentaires