代码之家  ›  专栏  ›  技术社区  ›  user9074131

在React中屏蔽字段而不使用插件[关闭]

  •  -1
  • user9074131  · 技术社区  · 7 年前

    我需要在React中将SSN字段屏蔽为123-45-6789,

    我的目标是在不使用react输入掩码、输入掩码等插件的情况下做到这一点。

    My input 123456789
    Expected input 123-45-6789
    

    我们能做到吗?通过regex或没有插件的东西。

    任何帮助都将不胜感激。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Jahl    7 年前

    您可以在onChange事件期间使用正则表达式来执行此操作,如下所示:

    _onInputChange = (event) => {
        var string = event.target.value;
        string = string.replace(/-/g, "");
        var regex = /^([^\s]{3})([^\s]{2})([^\s]{4})$/g;
        var match = regex.exec(string);
        if (match) {
          match.shift();
          string = match.join("-")
        }
        this.setState({ssn: string});
    }
    

    这里有一个工作 fiddle

    但是,这只会在键入整数后屏蔽该值。