在ReactJS中的onChange(双字符)过程中从全角到半角的转换问题

在字符串从全角转换为半角的过程中。如果我使用日语输入(全角),例如同时按“ 2 + 0”,将生成“ 220”。对于其他半角输入来说,这不是问题。请注意,输入数字需要快速输入或同时按下才能得到此结果。

Chrome浏览器:

  • 输入'20',结果将为'220'

Safari:

  • 输入“ 20”,结果将是“ 220”。如果继续输入“ 30” 结果将是“ 2202032030”

此处的代码:https://jsfiddle.net/wesleywong/ub39wn8d/16/

到目前为止,我已经尝试过使用setTimeout来延迟输入,但是结果仍然相同。

convertor(value) {
    const string = value.replace(
      /[\uff01-\uff5e]/g,function(ch) {
        return String.fromCharCode(ch.charCodeAt(0) - 0xfee0);
      }
    ).replace(/\u3000/g,'\u0020');
    return string;
  }

  onChange(event) {
    let value = event.currentTarget.value;
    value = this.convertor(value);
    this.setState({
        text: value
    });
  }

我希望'2 + 0'的输出将与其他半角输入相同,为'20'。

演示输入视频:

在ReactJS中的onChange(双字符)过程中从全角到半角的转换问题

zhourqdl 回答:在ReactJS中的onChange(双字符)过程中从全角到半角的转换问题

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3162742.html

大家都在问