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

请教大佬如何辨别字符串区别

  •  
  •   thinkwei2012 · 2020-05-26 09:58:29 +08:00 · 1308 次点击
    这是一个创建于 1643 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以 js 正则为例,如何区分 s1 和 s2 的不同? s1 是复制用户的,s2 是手打的 起初还以为是正则出了问题

    let s1 = '64165269‬B';
    let s2 = '64165269B';
    
    console.log(/^[0-9A-z]{8,11}$/.test(s1));
    console.log(/^[0-9A-z]{8,11}$/.test(s2));
    
    5 条回复    2020-05-26 10:26:37 +08:00
    remarrexxar
        1
    remarrexxar  
       2020-05-26 10:04:27 +08:00
    console.log(charToUnicode(s1))
    \\ u0036 \\ u0034 \\ u0031 \\ u0036 \\ u0035 \\ u0032 \\ u0036 \\ u0039 \\ u202c \\ u0042
    console.log(charToUnicode(s2))
    \\ u0036 \\ u0034 \\ u0031 \\ u0036 \\ u0035 \\ u0032 \\ u0036 \\ u0039 \\ u0042

    多了不可见字符
    Vegetable
        2
    Vegetable  
       2020-05-26 10:13:59 +08:00
    如果你只是确定的话,可以用方向键移动光标看看有没有不可见字符。
    也可以保存两个文件用 diff 或者 git diff 之类工具。
    代码里最好 trim 一下,有时候复制会在前后添加莫名其妙的字符。
    thinkwei2012
        3
    thinkwei2012  
    OP
       2020-05-26 10:23:25 +08:00
    @remarrexxar 感谢,根据 \u202c 搜索了下,很有可能是用户从 excel 里直接复制粘贴的
    wysnylc
        4
    wysnylc  
       2020-05-26 10:24:06 +08:00
    lululau
        5
    lululau  
       2020-05-26 10:26:37 +08:00
    pbpaste | cat -v
    pbpaste | od -Ad -tc
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2598 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:31 · PVG 23:31 · LAX 07:31 · JFK 10:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.