Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript注册表是否需要介于1和999999之间的整数?_Javascript_Jquery_Regex_Jquery Plugins - Fatal编程技术网

Javascript注册表是否需要介于1和999999之间的整数?

Javascript注册表是否需要介于1和999999之间的整数?,javascript,jquery,regex,jquery-plugins,Javascript,Jquery,Regex,Jquery Plugins,我希望我能自己解决这个问题,但我从未完全掌握正则表达式。他们看起来很强大。我想问学习javascript reg ex的最佳资源在哪里,但这太主观了,我不想我的问题就此结束。我在web表单上有一个文本框,当它有一个值时,该值应该是1到999999之间的整数。我已经使用jquery数字插件只允许数字,所有其他击键都被拒绝,有一个onBlur实现,如果某个正则表达式不匹配,将调用回调。。。这就是代码 $.fn.numeric.blur = function() { var decimal = $.d

我希望我能自己解决这个问题,但我从未完全掌握正则表达式。他们看起来很强大。我想问学习javascript reg ex的最佳资源在哪里,但这太主观了,我不想我的问题就此结束。我在web表单上有一个文本框,当它有一个值时,该值应该是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正则表达式的简单方法是什么?非常感谢大家。祝你假期愉快

干杯,
~ck在圣地亚哥

这样就可以了:

[0-9]{1,6}

不过,我建议使用整数解析/验证函数。

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

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

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

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

应该这样做,正则表达式的最佳资源可能是

正则表达式真的是验证整数的正确工具吗?有什么理由不能执行
@Raj More提出了一个非常明智的建议。(真的没有必要时为什么要使用正则表达式。):-(decimal>=1&&decimal OP说“介于1和999999之间”):+1用于提倡非正则表达式解决方案。虽然我也会使用
parseInt
或其他类型的cast,因为
number
可以表示的不仅仅是整数值。没错,他没有说“包含”。(我责备规范)当然,他想说的是…:-)这真的没用,是吗?如果十进制数为“12345”,则不起作用。我想问题是输入是否为“12345”,而不是值是否为12345。但这也将匹配
0
var re = new RegExp("[1-9][0-9]{0,5}");