允许负数/正数而不是字母

时间:2011-11-03 14:03:55

标签: javascript regex

我想禁用文本框中的字母,这就是我使用此表达式的原因:

/^[0-9]*$/

问题是我也想允许负数,  并且这个表达式不允许我使用减号。( - ).. 我做什么了?

4 个答案:

答案 0 :(得分:8)

尝试使用以下regexp:

/^-?[0-9]*$/

答案 1 :(得分:5)

更正确:/^(?:- *)?[0-9]+$/

因为通常允许在减号和数字之间有一个或多个空格。此外,必须至少有一位数才能拥有有效数字。

答案 2 :(得分:0)

如果您决定要匹配所有类型的数字,包括浮点数this is a good read。如果您只想将简单整数与可选的“减号”匹配,则go with hsz's answer,但我可能会将*更改为+

答案 3 :(得分:0)

使用JavaScript的isNaN()函数。

这是下面的代码:

$(document).ready(function () {
    numbersPlusMinus();
});


function numbersPlusMinus() {

    var inputPrev = "";

    $(".toNumberPlusMinus").change(function () {

        if (isNaN($(this).val())) {

            $(this).val(inputPrev);

        } else {

            inputPrev = $(this).val();
        }
    });
}