Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.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 0到100之间的数字的正则表达式?_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 0到100之间的数字的正则表达式?

Javascript 0到100之间的数字的正则表达式?,javascript,jquery,regex,Javascript,Jquery,Regex,它不应该允许前导零,比如099。允许的值应该如下:35,99,1,2,3,100 这就是我所尝试的: $('#createCoupon_discountAmount').bind('input propertychange', function () { $(this).val($(this).val().replace(/(\d\d?|100)\Z/g, '')); }); 如果要删除前导零,请尝试使用^0+从起始位置删除前导零,即匹配以一个或多个零开头的字符串 $(this).

它不应该允许前导零,比如
099
。允许的值应该如下:
35
99
1
2
3
100

这就是我所尝试的:

$('#createCoupon_discountAmount').bind('input propertychange', function () {
    $(this).val($(this).val().replace(/(\d\d?|100)\Z/g, ''));
});  

如果要删除前导零,请尝试使用
^0+
从起始位置删除前导零,即匹配以一个或多个零开头的字符串

$(this).val().replace(/^0+/g, '')

只需将该值乘以1,就会得到一个完美的数字,我将使用的正则表达式如下,但我不确定它是否为最佳值:

^([0-9]|([1-9][0-9])| 100)$


我们创建三个组,并始终从字符串的开头到结尾进行匹配。我们捕获的第一组是
[0-9]
,以获取前10个数字(0-9)。第二组我们捕获这些数字两次,以获得10->99中的所有数字。最后,我们也只比100强

这个版本更短,可能更高效。
/^([1-9]?\d | 100)$/

@rorymcrossan:它不起作用。。它接受前导零。^[1-9][0-9]?$^^100$这将是解决您的问题的有效正则表达式。只需指定第一个数字的允许值。请注意,正则表达式并不是最适合此任务的工具。对于百分比,文本框应只允许0到100之间的数字。最大长度为3。