0

我想使用以下代码验证文本框是否具有数值,但我不知道数字的过滤器术语,我的代码是:

    function validateRequiredNumeric(Control, msgInfo) {
    var ControlId = $('#' + Control);
    var msgInfoId = $('#' + msgInfo);
    //testing regular expression
    var a = ControlId.val();
    var filter = /[^\d]/;
    alert(a.length);
    if (a.length != 0) {
        if (filter.test(a)) {
            msgInfoId.text('');
            ControlId.css({ 'border': '1px solid green' });
            return true;
        } else {
            //msgInfoId.css({ 'color': 'red', 'font-size': '12px', 'font-style': 'italic' });
            msgInfoId.text("Numeric Onlydd fdf dfd");
            ControlId.css({ 'border': '1px solid red' });
            return false;
        }
    }
    else {
        //msgInfoId.css({ 'color': 'red', 'font-size': '12px', 'font-style': 'italic' });
        msgInfoId.text("You can't leave this empty.");
        ControlId.css({ 'border': '1px solid red' });
        return false;
    }

}

请帮帮我..我也试过“ [^0-9] ”这个..

4

5 回答 5

1

正则表达式应该是:

仅适用于数字/^[\d]+$/

对于任何非数字/^[^\d]+$/

我不确定您在问题中的意思,因为您的正则表达式尝试是针对非数字的。

另一个答案让我想到了,如果您希望用户使用小数,您应该添加一些字符大小写...

对于小数/^[\d]+[,.]?[\d]*$/ ,小数点前至少需要一个数字。

于 2012-09-26T09:49:23.873 回答
0

试试Texottela 插件,启用一个numeric()函数,你可以提供一个回调,当焦点丢失并且文本框中的值不是有效数字时运行。

于 2012-09-26T09:48:51.123 回答
0

我相信您正在寻找的术语是regular expression

这应该这样做:

var filter = /^\d*$/;

克拉^符号将小数锚定到字符串的开头 符号将小数$锚定到字符串的末尾,并且\d*匹配一个或多个十进制值

如果字符串中有任何非小数,正则表达式将返回 false

于 2012-09-26T09:52:19.817 回答
0

请遵循。它很好地解释了你在这里寻找什么。

于 2012-09-26T09:56:00.497 回答
0

你不需要正则表达式

    var a = Number($.trim(controlID));  //or parseInt($.trim(controlID))
    if (!isNaN(a)) {
        //a is valid number
    } else {
        //a is not a number or is empty
    }
于 2012-09-26T09:56:23.387 回答