好奇很多网站用户名都不允许带 - 中划线?是为什么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
SethShi
0.01D
V2EX    问与答

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

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

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

    我在使用 lists.sr.ht 的时候就遇到过这个问题,好在他们提供了另外一套地址规则作为 fallback
    TimePPT
        10
    TimePPT  
    PRO
       20 天前
    @WorseIsBetter 对的,这部分都是比较深入做过登录注册/邮件收发的人才知道。RFC 本身是规范意见,并不是强制标准,所以历史上各种问题五花八门,包袱都很重。比如 RFC 后来扩充邮件地址可以使用非 ASCII 字符,但一般……还真不敢用,很多主流邮件运营商会作为垃圾邮件拒绝收发。
    登录注册这块,很多提供邮箱注册的,为了省事,都是只能用主流的邮件服务商的邮箱域注册,且 local-part 故意很严格。
    所以,我甚至建议,注册服务的开发,能用三方登录,都别用邮箱,维护成本比较高。
    SethShi
        12
    SethShi  
    OP
       19 天前
    @wen20 不知道什么老传统
    SethShi
        13
    SethShi  
    OP
       19 天前
    @panlatent 所以为什么其他网站不行
    SethShi
        14
    SethShi  
    OP
       19 天前
    @TimePPT 检验这个说不过去,这么大网站了也不是什么难题,@Livid 能解答一下吗
    SethShi
        15
    SethShi  
    OP
       19 天前
    @weiwoxinyou 感觉这个不是理由
    TimePPT
        16
    TimePPT  
    PRO
       19 天前 via Android
    @SethShi 我说的是一般情况,跟 V2EX 站点策略无关哈。
    junyee
        17
    junyee  
       18 天前
    可能是为了方便检测. 正则判断中 \w 中不含 '-' .
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     896 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 20:47 PVG 04:47 LAX 13:47 JFK 16:47
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86