V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Amber2011
V2EX  ›  前端开发

邮件发送行那种自动识别邮箱和一次退格直接删除一个地址是如何做到的?

  •  
  •   Amber2011 · 2021-05-11 14:14:47 +08:00 via Android · 1394 次点击
    这是一个创建于 1327 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有原生的函数可以做到吗?刚才试了一下 select()好像不管用

    8 条回复    2021-05-20 15:41:37 +08:00
    zacharyjia
        1
    zacharyjia  
       2021-05-11 14:40:13 +08:00
    其实一般都是用标签输入框那种吧。
    纯原生的话,监听一下键盘事件,然后用正则匹配最后一个邮箱地址删掉似乎可以做到?
    yaphets666
        2
    yaphets666  
       2021-05-11 16:57:24 +08:00
    正则表达式+一些逻辑

    直接删除就是 清空输入框的绑定的值呗( mvvm )
    botaotu
        3
    botaotu  
       2021-05-11 17:45:25 +08:00
    正则匹配,drafts.js immutable 富文本了解一下
    xmumiffy
        4
    xmumiffy  
       2021-05-11 17:49:45 +08:00 via Android   ❤️ 3
    做点好事吧,我就打错一个字,结果一按退格就帮我全删了
    ch2
        5
    ch2  
       2021-05-11 17:58:20 +08:00
    你可以理解为编辑器对文本做了词法分析,邮箱的特征是 [email protected] 后面接一个换行符,正则匹配成功后就把换行符之前的 raw text 切出来成为一个 token 。token 是有属性的,包括了文本的起始和结束下标,然后用户要删除的时候直接把这个范围内的 raw text 都删掉就行了
    Tianao
        6
    Tianao  
       2021-05-11 18:05:05 +08:00 via iPhone
    @xmumiffy #4 +1,iOS 上信息和邮件都是这样,真的反直觉。
    ALLROBOT
        7
    ALLROBOT  
       2021-05-11 19:35:11 +08:00
    正则,菜鸟网站有教程
    q197
        8
    q197  
       2021-05-20 15:41:37 +08:00
    @xmumiffy 一般逻辑是点击这个整体进入编辑模式 而且输入中不空格等进入一条输入结束的状态是不会进入退格就全删的模式的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   944 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 21:06 · PVG 05:06 · LAX 13:06 · JFK 16:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.