那个大神能指导个正则
智能输入四位数字或,四位数字区间,如:2000,或2000-3000。,谢谢,
[解决办法]
2000+parseInt(Math.random()*1000)
不是很明白你的意思
[解决办法]
/^(2\d{3}
[解决办法]
3000)$/
[解决办法]
/\d{4}(-\d{4})?/
[解决办法]
var reg = new RegExp("^\\d{4}$
[解决办法]
(^\\d{4}-\\d{4}$)","g");
reg.test("4000-8866");
reg.test("4000")
reg.test("400")
[解决办法]
这种方式/\d{4}(-\d{4})?/.test("4000-1")也匹配成功了
[解决办法]
那是匹配了4000
var $a = /^\d{4}(-\d{4})?$/.test("4000-1")
[解决办法]
单个正则貌似很难,组合形式的是否有兴趣
function numValidate(str){
var temp = /^([2-9]\d{3})(?:-([2-9]\d{3}))?$/.exec(str);
if(!temp)return false;
if(!temp[2])return true;
return Number(temp[2]) > Number(temp[1]);
}
numValidate("2222-1111") //false
numValidate("1111") //false
numValidate("2000") //true
numValidate("2000-2001") //true
numValidate("2001-2000") //false
[解决办法]
不好意思没表达清楚,文本框输入范围是2000-9999,可以输2001 也可以输入2300-5454,5454要比2300大
/^(2\d{3}
[解决办法]
3000)$/
就是这个啊
var reg = new RegExp("^\\d{4}$
[解决办法]
(^\\d{4}-\\d{4}$)","g");
reg.test("4000-8866");
reg.test("4000")
reg.test("400")
你直接写个页面把这个代码运行一遍就知道了,前两个返回TRUE最后一个返回false,但是没办法匹配4200-1123这种,在正则表达式里面貌似没办法判断大小,所以无能为力,但是基本格式可以满足