日期:2014-05-16 浏览次数:20349 次
> 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); }