在不使用插件的情况下屏蔽React中的字段

时间:2018-01-22 22:36:37

标签: javascript regex reactjs masking

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

我的目标是在不使用反应输入掩码,输入掩码等插件的情况下这样做。

My input 123456789
Expected input 123-45-6789

我们可以这样做吗?通过正则表达式或没有插件的东西。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:3)

您可以使用正则表达式在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

但是这只会在输入整个数字后屏蔽该值。