空格键输入使用regex.replace擦除数据

问题描述 投票:0回答:1

我搜索了超过三天的解决方案。我找到了一个堆栈答案Stack Ans和他的JSFiddle JSFiddle,100%适用于桌面,99%适用于移动版本。示例代码:

<input type="text" class="numeric" />
$('.numeric').on('input', function (event) { 
   this.value = this.value.replace(/[^0-9]/g, '');
});

查看移动设备中的jsfiddle链接并自行测试,测试用例:提供输入值为12345,然后按spacebar twiceremoves 5,接下来两次空格键removes 4。怎么解决这个?

以下代码适用于桌面浏览器,而不适用于移动浏览器,因为无法识别密钥代码。

$(".numeric").on("keypress", function (event) {
   if ((event.which < 48 || event.which > 57)) event.preventDefault();
});

测试视频日志:Video Log Bug Report

jquery regex
1个回答
0
投票

我找到了解决问题的方法,

$('.NumOnly').on('input', function (event) {
if (this.value.indexOf(' ') < 0) {
    this.value = this.value.trim().replace(/[^0-9]/g, '');
    if (!CheckLength(event.target.maxLength, $("#" + event.target.id).val())) {
        event.returnValue = false;
        return false;
    }
}
else this.value = this.value.trim();
});

我使用indexOf(' ')检查输入值是否有空格。如果结果> = 0则trim()值,否则replace使用基于正则表达式的验证。

© www.soinside.com 2019 - 2024. All rights reserved.