Javascript reg ex需要1到999999之间的整数?

时间:2010-12-21 16:41:00

标签: javascript jquery regex jquery-plugins

我希望自己可以解决这个问题,但我从来没有完全掌握正则表达式。它们看起来如此强大。我想问一下学习javascript reg ex的最佳资源在哪里,但这是主观的,我不想让我的问题关闭。我在Web表单上有一个文本框,当它有一个值时,该值应该是1和1之间的整数。 999999.我已经使用jquery数字插件只允许数字,所有其他击键被拒绝,有一个onBlur实现,如果一些正则表达式不匹配,将调用回调...这是代码...

$.fn.numeric.blur = function()
{
var decimal = $.data(this, "numeric.decimal");
var callback = $.data(this, "numeric.callback");
var val = $(this).val();
if(val != "")
{
    var re = new RegExp("^\\d+$|\\d*" + decimal + "\\d+");
    if(!re.exec(val))
    {
        callback.apply(this);
    }
}
}

我可以修改该正则表达式以确保val是1到999999之间的有效整数吗?任何帮助,将不胜感激。另外显然我想自己做这个,有什么简单的方法来学习javascript正则表达式?非常感谢你们。祝所有人度过了一个美妙的假期!

干杯,
〜在圣地亚哥

4 个答案:

答案 0 :(得分:7)

在这种特殊情况下,我建议不要使用正则表达式。只需使用简单的旧Javascript:

if( typeof decimal === 'number' && (decimal > 1 && decimal < 999999) ) {
     // here we go
}

要将值转换为数字,您可以使用+运算符或.parseInt()

var val = +$.trim($(this).val());
if( val && (decimal >= 1 && decimal <= 999999) ) {
}

答案 1 :(得分:5)

这可以胜任:

[0-9]{1,6}

我建议使用整数解析/验证功能。

答案 2 :(得分:2)

这不是正则表达式问题。看看JQuery .validate函数。您可以将字段要求设置为范围。

答案 3 :(得分:2)

var re = new RegExp("[1-9][0-9]{0,5}");

应该这样做,正则表达式的最佳资源可能是http://www.regular-expressions.info/