我的JS函数如何限制特定的数据

本文关键字:数据 何限制 JS 函数 我的 | 更新日期: 2023-09-27 18:13:11

在asp.net文本框中,我调用了一个javascript函数,我写的是在文本框中只限制'数字'条目,但我也想允许'+'符号,但无法解决它。

这是我到目前为止所尝试的。

function isNumberKey(evt) {
            var charCode = (evt.which) ? evt.which : event.keyCode
            if (charCode > 31 && (charCode < 48 || charCode > 57))
                return false;
            return true;
        }

我的JS函数如何限制特定的数据

只需反转条件并添加+(即43)的ASCII码以返回true

function isNumberKey(evt) {
            var charCode = (evt.which) ? evt.which : event.keyCode
            if ((charCode >=48 && charCode <= 57) || (charCode == 43))
                return true;
            return false;
       }

如果您能够限制数字,您也可以输入'+',我猜您需要ASCII表和相应的值,即您如何限制数字,而charCode > 31似乎无用,如果您只检查数字:http://www.asciitable.com/

所以如果你想检查+

charCode != 43

您还需要明确检查+,将您的if修改为:

if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 43)

下面是工作示例:

function isNumber(evt) {
    evt = (evt) ? evt : window.event;
    
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 43) {
        return false;
    }
    return true;
}
<input type="text" class="textfield" value="" id="extra7" name="extra7" onkeypress="return isNumber(event)" />

工作演示

Ascii表

function isNumber(evt) {
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)&& charCode != 43) {
    return false;
}
return true;
}