日期:2014-05-16 浏览次数:20414 次
> var p = /[+-][0-9]+[ymdw]/g; undefined > '+1y -2m +3w -4d'.match(p) [ '+1y', '-2m', '+3w', '-4d' ] >
------解决方案--------------------
var reg = /^(?!.*?([ymwd]).*?\1)([+-]\d+[ymwd] *){1,4}$/;
------解决方案--------------------
var date={
reg:/^([+-]\d+[ymwd] *){4}$/
}
date.check=function(context){
if(context.indexOf('y')!=-1){
if(context.indexOf('m')!=-1){
if(context.indexOf('w')!=-1){
if(context.indexOf('d')!=-1){
if(date.reg.test(context)){
return true;
}
}
}
}
}
return false;
}
alert(date.check("+1y -m +3w -4d"));
一定要用正则吗?不会了
------解决方案--------------------
var reg = /^(?!.*?(?:[ymwd]).*?\1)(?:[+-]\d+[ymwd] *){1,4}$/;
------解决方案--------------------
var check = function(s){
var r = /^(?:\s*[-+]\d+[ymwd]\s*)+$/i;
var isFormatRight = r.test(s);
if(!isFormatRight) { return false; }
var i, len, repeat=false, map={}, w, a = s.match(/[a-z]/gi);
if(a && a.length <= 4){
for(i=0, len=a.length; i<len; i++){
w = a[i].toLowerCase();
if(map.hasOwnProperty(w)){
repeat = true;
break;
}
map[w] = null;
}
}else{
repeat = true;
}
return !repeat;
}
alert(check(' +1y -2m +3w -4d'));
------解决方案--------------------
s1 = '+1y -2m +3w -4d';
s2 = '+1y -2m +3y -4d';
document.write(s1+' : '+check(s1));
document.write(s2+' : '+check(s2));
function check(s) {
if(/([ymwd]).*\1/.test(s)) return false;
return /[-+][0-9]+[ymwd]/.test(s);
}