搜集前段面试题,自己尝试做解答!

题目1,有一个数组[123,454,1231,567,897,12] 请取出这个数组中最大的三个数!

var arr=[]	//存储取出的数
var aa=[1253,123,54,65,1233]
function getMax(arr1,arr2,length){
	for(var i=0;i

题目2,判断一个字符串是否满足YYYY-MM-DD日期格式!(日期保证绝对有效)

解题思路!

1、判断闰年

普通闰年:普通情况求闰年只需除以4可除尽即可 年/4余数为0
世纪闰年:如果是100的倍数但不是400的倍数,那就不是闰年了,即末两位都是零的整除400才行 

return (year%4==0&&year%100!=0||year%400==0)

2、正则判断/^\d{4}-\d{2}-\d{2}$/

3、判断月份天数,一三五七八十腊31天永不差!四六九十一30天,只有二月28,闰年二月29天

if([01,03,05,07,08,10,12].indexOf(month)!=-1&&day!=31){
    return false
}
if([4,6,9,11].indexOf(month)!=-1&&day!=30){
    return false
}
if(month=02&&闰&&day!=29){
    return false
}
if(month=02&&!闰&&day!=28){
    return false
}

完整代码!

var date='2013-12-34'
function dateStyle(date){
    var result =true//最终返回结果
    var reg=/^\d{4}-\d{2}-\d{2}$/
    var arr=date.split('-')
    if(!reg.test(date)){
        return false
    }else{var leapYear=(arr[0]%4==0&&arr[1]%100!=0||arr[2]%400==0)}

    if([01,03,05,07,08,10,12].indexOf(arr[1])!=-1&&arr[2]!=31||arr[1]>12){
        return false
    }
    if([4,6,9,11].indexOf(arr[1])!=-1&&arr[2]!=30)||arr[1]>12{
        return false
    }
    if(arr[1]=02&&leapYear&&arr[2]!=29){
        return false
    }
    if(arr[1]=02&&!leapYear&&arr[2]!=28){
        return false
    }
    return true
}
dateStyle(date)
    

 

你可能感兴趣的:(js)