Rexact
Cheatsheet

Regex code postal japonais

Le manuel de la Poste japonaise écrit le code en 7 chiffres avec un tiret entre le 3e et le 4e (« 100-0001 »), en chiffres ASCII seulement. Sur une adresse, il est précédé du symbole 〒, que le manuel ne mentionne pas. Aucune des trois tentatives réelles ne gère les deux : validator.js exige le tiret et rejette « 1000001 », une règle Kuroco n'est pas ancrée donc « abc100-0001xyz » passe, et django-localflavor accepte les deux écritures mais rejette « 〒100-0001 ». Voici un motif ancré qui accepte le tiret et le 〒 comme facultatifs, comparé à ces trois tentatives réelles.

/^(?:〒 ?)?[0-9]{3}-?[0-9]{4}$/
passe 26/26 cas

Comparatif des patterns existants

Implémentation

const re = new RegExp("^(?:〒 ?)?[0-9]{3}-?[0-9]{4}$", "");
re.test(input);

Limites

  • Valide seulement la FORME (7 chiffres, tiret facultatif après le 3e) : ne vérifie pas qu'un code est réellement attribué par la Poste japonaise. « 000-0000 » passe, alors qu'il n'est très probablement attribué à aucune adresse.
  • Le tiret facultatif et le préfixe « 〒 » sont des tolérances de saisie : le manuel de la Poste japonaise ne décrit que la forme avec tiret et ne mentionne pas « 〒 ». Si vous stockez le code, normalisez-le en « NNN-NNNN » sans 〒.
  • Rejette les chiffres pleine chasse (« 100-0001 ») : le manuel dit « 当分の間、算用数字のみ » (chiffres arabes seulement, pour l'instant). C'est un choix de la Poste, pas une loi : convertissez-les en ASCII avant validation si votre public saisit en japonais.
  • Un code à 7 chiffres ne dit rien de l'adresse : seul un fichier de correspondance code-adresse comme celui de la Poste japonaise confirme qu'un code existe et à quelle zone il correspond.

Codes postaux d’autres pays

Pages liées