Rexact
Cheatsheet

Regex Mastodon username

On Mastodon, a local account has a username of 1 to 30 characters among letters, digits and underscore, case-insensitive (source code: Account model). For remote accounts the same model also accepts dots and hyphens inside the name. The attempts I read reflect that: Mastodon's own USERNAME_ONLY_RE pattern (remote accounts) accepts 'alice.smith' and 'a-b', the local-account rule has no length bound in the regex (the 30 limit is a separate validation), and Maigret, which probes mastodon.social, reuses '[a-zA-Z0-9_]+' with no bound. Here's a pattern applying the local rule and its 30-character limit, compared against those attempts.

/^[a-z0-9_]{1,30}$/i
passes 26/26 cases

Comparison of existing patterns

Implementation

const re = new RegExp("^[a-z0-9_]{1,30}$", "i");
re.test(input);

Limits

  • Valide seulement la forme d'un nom d'utilisateur LOCAL (sans domaine). Les comptes distants (« alice.smith@autre.instance ») suivent une règle plus large, et l'adresse complète « @nom@domaine » n'est pas couverte (voir la fiche domain-name pour la partie domaine).
  • Les noms réservés (admin, root, etc.) et l'unicité sont contrôlés par le serveur, pas par la regex ; chaque instance peut être configurée avec une règle différente (plugins, versions anciennes). La règle vient du code source de Mastodon, pas d'une spécification publiée.
  • La casse n'est pas significative sur Mastodon : « Alice » et « alice » désignent le même compte. Normalisez en minuscules avant de comparer.

Related pages