Puis-je améliorer cette regex pour vérifier la validité des noms de domaine?

Donc, j'ai travaillé sur ce nom de domaine d'expression régulière. Jusqu'à présent, il semble pour ramasser les noms de domaine avec des Sld et Tld (avec l'option de ccTLD), mais il y a dédoublement de la TLD inscription. Cela peut-il être refait davantage?

params[:domain_name].downcase.strip.match(/^[a-z0-9\-]{2,63}
\.((a[cdefgilmnoqrstuwxz]|aero|arpa)|(b[abdefghijmnorstvwyz]|biz)|
(c[acdfghiklmnorsuvxyz]|cat|com|coop)|d[ejkmoz]|(e[ceghrstu]|edu)|f[ijkmor]|
(g[abdefghilmnpqrstuwy]|gov)|h[kmnrtu]|(i[delmnoqrst]|info|int)|
(j[emop]|jobs)|k[eghimnprwyz]|l[abcikrstuvy]|
(m[acdghklmnopqrstuvwxyz]|me|mil|mobi|museum)|(n[acefgilopruz]|name|net)|(om|org)|
(p[aefghklmnrstwy]|pro)|qa|r[eouw]|s[abcdeghijklmnortvyz]|
(t[cdfghjklmnoprtvwz]|travel)|u[agkmsyz]|v[aceginu]|w[fs]|y[etu]|z[amw])
(\.((a[cdefgilmnoqrstuwxz]|aero|arpa)|(b[abdefghijmnorstvwyz]|biz)|
(c[acdfghiklmnorsuvxyz]|cat|com|coop)|d[ejkmoz]|(e[ceghrstu]|edu)|f[ijkmor]|
(g[abdefghilmnpqrstuwy]|gov)|h[kmnrtu]|(i[delmnoqrst]|info|int)|
(j[emop]|jobs)|k[eghimnprwyz]|l[abcikrstuvy]|
m[acdghklmnopqrstuvwxyz]|mil|mobi|museum)|
(n[acefgilopruz]|name|net)|(om|org)|
(p[aefghklmnrstwy]|pro)|qa|r[eouw]|s[abcdeghijklmnortvyz]|
(t[cdfghjklmnoprtvwz]|travel)|u[agkmsyz]|v[aceginu]|w[fs]|y[etu]|z[amw]))?$/)
  • Quelle est votre cas d'utilisation pour une regex qui doit être maintenue lors de la création de nouveaux domaines?
  • Depuis toutes les réponses semblent donner d'autres moyens de recherche Tld, je propose de renommer cette question afin d'éviter la duplication dans le futur (à moins que les gens réellement commencer à répondre à la refactorisation question)
  • bonne idée - c'est vraiment pas une regexp problème.
  • Horriblement mauvaise idée, spécialement le fil de la liste des TLD.
InformationsquelleAutor Josh Delsman | 2008-12-30