仅输入浮点值

时间:2013-10-16 15:59:25

标签: jquery

我有一个input元素,其中numbersOnly类只允许写入(使用键盘)这个数字格式 - > #,##例如。 2,0439,14

当逗号前有2位数字时,第一位数字不允许 0

我正在使用此代码进行测试 - 但我仍然没有运气。

$('.numbersOnly').keyup(function () { 
    this.value = this.value.replace(/^[0-9]*[,][0-9]+$/,'');
});

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

可能是一种更简单的方式,但这似乎有效。 Jsfiddle:http://jsfiddle.net/8GU6e/4/

这确实假定任意数字的数字是有效的,我并不完全清楚你想要那个。 “12,12345”有效吗?这假设是。在Chrome和Firefox上测试过。

$('.numbersOnly').keypress(function (e) { 
    var charCode = (typeof e.which == "number") ? e.which : e.keyCode;

    // Firefox will trigger this even on nonprintabel chars... allow them.
    switch (charCode) {
        case 8: // Backspace
        case 0: // Arrow keys, delete, etc
            return true;
        default:
    }

    var lastChar =  String.fromCharCode(charCode);

    // Reject anything not numbers or a comma
    if (!lastChar.match("[0-9]|,")) {return false;}

    // Reject comma if 1st character or if we already have one
    if (lastChar == "," && this.value.length == 0) {return false;}
    if (lastChar == "," && this.value.indexOf(",") != -1) {return false;}

    // Cut off first char if 0 and we have a comma somewhere
    if (this.value.indexOf(",") != -1 && this.value[0] == "0") {
        this.value = this.value.substr(1);
    }

    return true;
});