1.RegExp是JavaScript中的一个内置对象,为正则表达式。
<script language="javascript"> /* RegExp 是javascript中的一个内置对象。为正则表达式。 RegExp.$1是RegExp的一个属性,指的是与正则表达式匹配的第一个 子匹配(以括号为标志)字符串,以此类推,RegExp.$2,RegExp.$3,..RegExp.$99总共可以有99个匹配 给你看了例子就知道了 */ var r= /^(\d{4})-(\d{1,2})-(\d{1,2})$/; //正则表达式 匹配出生日期(简单匹配) r.exec('1985-10-15'); s1=RegExp.$1; s2=RegExp.$2; s3=RegExp.$3; alert(s1+" "+s2+" "+s3);//结果为1985 10 15 </script>
2.区别:js中test 与exec 的区别?
3.简单的日期校验:
//是否是日期 function isDate(str) { var rc = true; var year,month,day; reg = /^(\d{4})[-\/]?(\d{2})[-\/]?(\d{2})$/; if(!reg.test(str)) return false; year = eval(RegExp.$1); month = eval(RegExp.$2); day = eval(RegExp.$3); if(str=="99999999" || str=="99991231"){ return true; } if(year<1900 || year>2099) rc = false; if( (month < 1) || (month > 12) || (day < 1) || (day > 31) ) return false; switch (month) { case 1 : case 3 : case 5 : case 7 : case 8 : case 10: case 12: if (day >31) rc = false; break; case 4 : case 6 : case 9 : case 11: if (day >30) rc = false; break; case 2 : if ( (year%4 == 0) && (year%100 != 0) || (year%400 == 0) ) { if( day > 29) rc = false; } else { if( day >28) rc = false; } break; default : rc = false; } return rc; }