【发布时间】:2020-08-26 12:24:06
【问题描述】:
我希望用户只在我的输入中输入数值,因此我在下面放了代码。
<input type="text" class="form-control rounded-pill bg-light" autocomplete="off" name="free_credit_amount" id="free_credit_amount" placeholder="Free credit amount">
$('body').on('keyup', '#free_credit_amount', function(){
this.value = this.value.replace(/[^0-9\.]/g,'');
});
这对我来说很好......但是我有一个要求,用户也可以输入负值......像-500
,因此我已经更新了我的 JavaScript 正则表达式,如下所示 ..
$('body').on('keyup', '#free_credit_amount', function(){
this.value = this.value.replace(/[^-0-9]/g,'');
});
这对我来说也很好用,因为我可以输入 minus (-) 符号并可以输入类似 500 或 -500 的值,但是,我想稍微提供一下这个正则表达式 .. 目前正在发生什么,我也可以输入像500- 这样的值。这不应该被允许..我只希望我的minus (-) 仅作为第一个字符添加..
我尝试过使用其他各种正则表达式,例如 this.value = this.value.replace(/(\+|\-)?[^-0-9]/g,''); this.value = this.value.replace(/^[-][a-zA-Z0-9.,$;]/g,'');
但是那些正则表达式都不适合我..
有人可以帮我实现这一目标吗..
谢谢
【问题讨论】:
-
试试
this.value.replace(/[^-0-9]+/g,'').replace(/^(-)|-+/g,'$1') -
这种干扰用户输入的问题在于,用户可能会觉得他们的键盘坏了。他们还想知道为什么有时他们移动到输入开头的插入符号突然移动到结尾。这根本不是用户友好的。
标签: javascript jquery regex