Rexact
Cheatsheet

Regex pseudo Minecraft (Java Edition)

Un pseudo Minecraft Java Edition, ce n'est pas juste « des lettres, chiffres et underscore » : Mojang impose une longueur minimale de 3 caractères, une règle qu'une bibliothèque Go pourtant utilisée en production (minotar, l'API de skins) ignore en acceptant un seul caractère. Un dépôt GitHub va plus loin avec un bug d'ancrage classique : une alternance sans parenthèses fait que le « ^ » et le « $ » ne portent chacun que sur une seule branche, laissant passer des chaînes bien plus longues que prévu. Voici un motif qui respecte la vraie plage 3-16, comparé à ces trois tentatives.

/^[A-Za-z0-9_]{3,16}$/
passe 22/22 cas

Comparatif des patterns existants

Implémentation

const re = new RegExp("^[A-Za-z0-9_]{3,16}$", "");
re.test(input);

Limites

  • Valide seulement la FORME (3-16 caractères parmi lettres/chiffres/underscore) : ne consulte pas l'API Mojang (sessionserver.mojang.com) pour confirmer qu'un pseudo est réellement attribué et actif.
  • N'impose pas les restrictions de contenu de Mojang (pseudos offensants ou trompeurs interdits, indépendamment de la forme) : un pseudo syntaxiquement valide peut malgré tout être refusé à la création par Mojang pour des raisons de modération.
  • Ne couvre que le Java Edition : le Bedrock Edition (consoles, mobile) utilise un Gamertag Xbox partagé entre plateformes, avec ses propres règles de longueur et de caractères.
  • Ne reflète pas l'historique des changements de pseudo : Mojang limite à un changement tous les 30 jours et conserve l'historique des anciens pseudos, deux règles qu'une regex sur une seule chaîne ne peut pas exprimer.