JS高手进来帮下忙。
function getAge(strValidDate)
{
var arrayValidDate= strValidDate.split( "- ");
var intValidYear= parseInt(arrayValidDate[0]);// 获取出生日期年份
var intValidMonth= parseInt(arrayValidDate[1]);// 获取出生日期月份
var intValidDay= parseInt(arrayValidDate[2]);// 获取出生日期天数
var currentDate= new Date();// 获取当前日期
var intCurrentYear= parseInt(currentDate.getYear());// 获取当前日期年份
var intCurrentMonth= parseInt(currentDate.getMonth() + 1);// 获取当前日期月份
var intCurrentDay= parseInt(currentDate.getDate());// 获取当前日期天数
var intAge= intCurrentYear - intValidYear;// 暂时年龄
var validDate= new Date(intValidYear,intValidMonth - 1,intValidDay);// 日期型出生时间
varageDate= new Date(intValidYear,intCurrentMonth - 1,intCurrentDay);// 当前年周岁时间
// 如果出生日期小于等于当前周岁时间则已满周岁否则不满周岁(减 1 )
if ( ageDate - validDate <= 0 )
{
intAge=intAge-1;
}
//执行到此处时intAge仍然是正确的
return intAge;
}
function age()
{
if(getAge(strBirthday) <15)
{ //执行不到此处
ErrorString =ErrorString+ '19, ';
return false;
}
else
{ //执行不到此处
return true;
}
}
为什么下面那个函数执行不到注释的那两个地方?
strBirthday传入的参数是正确的。
getAge()执行到注释的那个地方仍然是正确的。
调两天了,请高手不吝赐教。谢谢了。
[解决办法]
晕,getAge 没有任何错误,而是 age 后面的空格错了,居然是全角括弧,LZ 用什么字体呀?!
建议使用 Courier New 作为 Coding 标准字体!
function age()
改为
function age()
[解决办法]
L@_@K!
var strBirthday = "1979-9-9 "; // 27
alert(age()); // true, it 's right!
function age()
{
if(getAge(strBirthday) <15)
{ //执行不到此处
ErrorString =ErrorString+ '19, ';
return false;
}
else
{ //执行不到此处
return true;
}
}
[解决办法]
LZ运行一下以下代码:
<script type= "text/javascript ">
<!--
function wr(){
for(var i=0,j=arguments.length;i <j;i++)
document.write(arguments[i], " ");
document.write( " <br> ");
}
function getAge(strValidDate)
{
var arrayValidDate= strValidDate.split( "- ");
var intValidYear= parseInt(arrayValidDate[0]);// 获取出生日期年份
var intValidMonth= parseInt(arrayValidDate[1]);// 获取出生日期月份
var intValidDay= parseInt(arrayValidDate[2]);// 获取出生日期天数
wr(intValidYear,intValidMonth,intValidDay);
var currentDate= new Date();// 获取当前日期
var intCurrentYear= parseInt(currentDate.getYear());// 获取当前日期年份
var intCurrentMonth= parseInt(currentDate.getMonth() + 1);// 获取当前日期月份
var intCurrentDay= parseInt(currentDate.getDate());// 获取当前日期天数
wr(intCurrentYear,intCurrentMonth,intCurrentDay);
var intAge= intCurrentYear - intValidYear;// 暂时年龄
var validDate= new Date(intValidYear,intValidMonth - 1,intValidDay);// 日期型出生时间
varageDate= new Date(intValidYear,intCurrentMonth - 1,intCurrentDay);// 当前年周岁时间
wr(validDate,ageDate);
// 如果出生日期小于等于当前周岁时间则已满周岁否则不满周岁(减 1 )
if ( ageDate - validDate <= 0 )
{
intAge=intAge-1;
}
wr(intAge);
//执行到此处时intAge仍然是正确的
return intAge;
}
function age(strBirthday)
{
if(getAge(strBirthday) <15)
{ //执行不到此处
ErrorString =ErrorString+ '19, ';
return false;
}
else
{ //执行不到此处
return true;
}
}
wr(age( "1988-09-09 "))
//-->
</script>
[解决办法]
查查代码中是否含有不可见全角空格!
以下代码就是复制了 LZ 代码,一切正常
L@_@K!
<body>
<script type= "text/javascript ">
<!--
function getAge(strValidDate)
{
var arrayValidDate= strValidDate.split( "- ");
var intValidYear= parseInt(arrayValidDate[0]);// 获取出生日期年份
var intValidMonth= parseInt(arrayValidDate[1]);// 获取出生日期月份
var intValidDay= parseInt(arrayValidDate[2]);// 获取出生日期天数
var currentDate= new Date();// 获取当前日期
var intCurrentYear= parseInt(currentDate.getYear());// 获取当前日期年份
var intCurrentMonth= parseInt(currentDate.getMonth() + 1);// 获取当前日期月份
var intCurrentDay= parseInt(currentDate.getDate());// 获取当前日期天数
var intAge= intCurrentYear - intValidYear;// 暂时年龄
var validDate= new Date(intValidYear,intValidMonth - 1,intValidDay);// 日期型出生时间
varageDate= new Date(intValidYear,intCurrentMonth - 1,intCurrentDay);// 当前年周岁时间
// 如果出生日期小于等于当前周岁时间则已满周岁否则不满周岁(减 1 )
if ( ageDate - validDate <= 0 )
{
intAge=intAge-1;
}
//执行到此处时intAge仍然是正确的
return intAge;
}
function age()
{
if(getAge(strBirthday) <15)
{
ErrorString = ErrorString + '19, ';
return false;
}
else
{
return true;
}
}
var strBirthday = "1999-9-9 ";
//var strBirthday = "1979-9-9 ";
var ErrorString = "Error: ";
alert(age());
alert(ErrorString);
//-->
</script>
</body>