input框使用正则限制,键盘中英文切换会导致输入问题


需求:限制input框只能输入中文 英文 数字

正则: event.target.value.replace(/[^a-zA-Z0-9\u4E00-\u9FA5]/g,'')

   使用这个正则后,大部分场景没问题,但是如果先输入英文或数字,再输入汉字时,会将之前的字符清空掉几个,具体几个根据输入汉字个数有关,

  测试发现,因为切换中文时, event.target.value的字符串中存在一个上引号:'  ,  这个引号不符合正则,所以会导致出现问题,

  所以更改正则:event.target.value.replace(/[^'a-zA-Z0-9\u4E00-\u9FA5]/g,'')    注意看多了个 '

  问题解决