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。