V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
SethShi
0.01D
V2EX  ›  问与答

好奇很多网站用户名都不允许带 - 中划线?是为什么?

  •  
  •   SethShi · 9 小时 48 分钟前 · 1147 次点击
    gmail. v2 都不行
    但是 github 可以,这个有什么依据吗?
    11 条回复    2025-09-20 22:57:13 +08:00
    beren11129
        1
    beren11129  
       8 小时 54 分钟前   ❤️ 1
    东西越少出错的概率越小
    pingdog
        2
    pingdog  
       8 小时 13 分钟前 via Android
    一般旧架构影响没做转义,换新架构也会保留下来
    SethShi
        3
    SethShi  
    OP
       8 小时 3 分钟前
    @beren11129 这太绝对了
    SethShi
        4
    SethShi  
    OP
       8 小时 3 分钟前
    @pingdog 哪个架构呀
    wen20
        5
    wen20  
       7 小时 13 分钟前
    用户名通常规则 数字字母下划线, 不知道为什么是这个规定。
    panlatent
        6
    panlatent  
       7 小时 8 分钟前 via Android
    权衡吧,github 用户名本质上是 slug
    TimePPT
        7
    TimePPT  
    PRO
       6 小时 33 分钟前   ❤️ 1
    1. 好校验
    2. 某些现成的库、框架限制
    3. 避免各种注入攻击
    4. 兼容旧系统(比如老的邮件发送系统)
    TimePPT
        8
    TimePPT  
    PRO
       6 小时 28 分钟前   ❤️ 2
    @TimePPT 说个冷知识,邮件系统中 local-part (也就是 @ 前的用户名)可以区分大小写也可以不区分大小写,没有强制要求,但很多组织的服务是不区分大小写的,所以一般,为了保证到信率,都不区分大小写。
    所以网站如果开放邮箱注册,有经验的程序员都是建议邮箱地址全部转为小写入库的。
    WorseIsBetter
        9
    WorseIsBetter  
       5 小时 8 分钟前   ❤️ 1
    @TimePPT #8

    还有一点就是 "~" 和 "/" 都是可以用于 local-part 的合法字符( RFC 5322 ),但是很多 MTA 不支持(包括我常用的某老牌企业邮箱),导致一些基于电子邮件的服务(比如邮件列表)无法正常使用。

    我在使用 lists.sr.ht 的时候就遇到过这个问题,好在他们提供了另外一套地址规则作为 fallback
    TimePPT
        10
    TimePPT  
    PRO
       4 小时 57 分钟前
    @WorseIsBetter 对的,这部分都是比较深入做过登录注册/邮件收发的人才知道。RFC 本身是规范意见,并不是强制标准,所以历史上各种问题五花八门,包袱都很重。比如 RFC 后来扩充邮件地址可以使用非 ASCII 字符,但一般……还真不敢用,很多主流邮件运营商会作为垃圾邮件拒绝收发。
    登录注册这块,很多提供邮箱注册的,为了省事,都是只能用主流的邮件服务商的邮箱域注册,且 local-part 故意很严格。
    所以,我甚至建议,注册服务的开发,能用三方登录,都别用邮箱,维护成本比较高。
    weiwoxinyou
        11
    weiwoxinyou  
       3 小时 48 分钟前   ❤️ 1
    数字字母下划线正则太简单了,如非必要,勿增实体。可以在控制台尝试打印以下 js:
    console.log(/^\w+$/.test('a_b'),/^\w+$/.test('a-b'))
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1015 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:45 · PVG 02:45 · LAX 11:45 · JFK 14:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.