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;
}