Rexact
Cheatsheet

Regex pseudo Twitch

Twitch ne publie aucun document unique réunissant toutes les règles de pseudo : la longueur minimale de 4 caractères vient d'une page d'aide officielle, le reste (caractères autorisés, underscore interdit en tête) se dégage de discussions sur le propre forum développeur de Twitch, où un employé demande lui-même « can someone confirm? » sur cette règle en 2014. Une bibliothèque npm réelle utilisée pour intégrer des lecteurs vidéo Twitch confirme d'ailleurs un vrai bug en production : sa regex n'accepte que les minuscules, alors que Twitch n'est pas sensible à la casse — « twitch.tv/Myth » échouait quand « twitch.tv/myth » fonctionnait. Voici un motif qui corrige ce point, comparé à ce cas et deux tentatives du forum développeur Twitch lui-même.

/^[a-zA-Z0-9][a-zA-Z0-9_]{3,24}$/
passe 20/20 cas

Comparatif des patterns existants

Implémentation

const re = new RegExp("^[a-zA-Z0-9][a-zA-Z0-9_]{3,24}$", "");
re.test(input);

Limites

  • Repose en partie sur des règles non publiées dans un document officiel unique (seule la longueur minimale de 4 caractères est confirmée par une page d'aide Twitch) : le reste vient de discussions du forum développeur et d'observations tierces, à traiter avec la prudence que ça mérite plutôt que comme une norme figée.
  • Ne consulte pas l'API Twitch (Get Users) pour confirmer qu'un pseudo est réellement attribué et actif : un pseudo syntaxiquement valide selon ce motif peut être libre, suspendu, ou n'avoir jamais existé.
  • Twitch n'étant pas sensible à la casse, ce motif accepte indifféremment majuscules et minuscules — contrairement à au moins une bibliothèque réelle comparée ici, qui n'accepte que les minuscules et casse une partie réelle des intégrations en production.
  • N'impose aucune restriction de contenu (pseudos trompeurs ou offensants interdits par la politique Twitch, indépendamment de la forme) : un pseudo syntaxiquement valide selon ce motif peut malgré tout être refusé à la création ou suspendu après coup.