需求是输入框限制数字、英文和中文,原始使用的正则是:
replace(/[^a-zA-Z0-9\u4E00-\u9FA5]/g,'')
1、使用这个正则表达式使用搜狗输入法没问题,使用微软自带输入法后会存在输入英文会吞并当前光标前的字符,也有英文打断问题。
输入后点击其他位置@keyup控制台打印出以下内容,会发现控制多出一个’
2、修改为一下正则即可解决
replace(/[^'\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')
旨在分享~~~~~~~~~~~~~~~~~~~~~~