我想验证具有特定范围的文本框,其格式如下:
1-99
我正在使用正则表达式:
/^(?:100|[1-9]\d|\d)-(?:100|[1-9]\d|\d)$/
它适用于我,但它接受这个小问题:
55-50
它不应该,这是错误的。
我该怎么纠正这个?
答案 0 :(得分:0)
因为您需要检查两个数字之间的验证,您必须使用逻辑运算来检查最小数字是否小于秒数,因此在这种情况下您不能使用正则表达式而是使用if/else
语句:
var input = "55-50";
if(input.indexOf('-')){
var input_arr = input.split('-');
if(input_arr.length==2 && parseInt(input_arr[0])<parseInt(input_arr[1]))
alert("Accepted");
else
alert("Not accepted");
}
&#13;
答案 1 :(得分:0)
因为早期的regexp不是验证范围的方法。更好的方法是使用if/else
语句。但是,您不限制使用regexp来验证特定格式的输入字符串。
Fi,如果您想让最终用户以number1-number2
格式输入范围,您可以检查字符串是否符合此格式,并检查其部分是否符合条件{{1 }}。如果所有这些检查完成,您可以做一些有用的事情或拒绝,如果检查失败。
number1 <= number2
上面的代码只是进一步改进的骨架,但现在可以使用了。但是代码可能过于复杂,如果您或您的客户要求实现更复杂的东西,如输入单个数字的能力,数字列表(用逗号,分号等分隔),混合范围或所有这些的任意组合。