• JavaScript小功能


    1. JS判断是否为一个有效日期

    1
    2
    3
    4
    function check(date){
        return (new Date(date).getDate()==date.substring(date.length-2));
    }
    //参数date可以格式化为xx-xx-xx或xxxx-xx-xx或用/分割

    new Date(date): 如果date为一个无效的变量, 则会返回invalid data

    getDate():返回日期中的天,如2016-02-11,返回11,假如天数在当前年和月份内不存在,如:2016-02-30,这时返回的是1,如果是2016-02-31,则返回2,如果是天数大于31或者是非数字,则返回NaN;

    date.substring(date-length-2):取得日期中的天数,根据getDate()函数可以知道,如果是有效的日期,则天数两个会相等, 否则不相等

    测试:

    1
    2
    3
    4
    5
    6
    7
    function check(date){
        var date2 = new Date(date);
        console.log(date2);
        console.log(date2.getDate());
        console.log(date.substring(date.length-2));
        return (new Date(date).getDate()==date.substring(date.length-2));
    }

      

    附:

    通常来说,javascript验证日期的有效性可以通过正则判断

    但正则表达式无法精准验证日期的有效性,你无法通过正则表达式判断出1900-02-29是非法日期而2000-02-29是合法日期,而且正则表达式匹配起来比较繁琐。

    要想精确验证,最容易想到的方法就是通过月份判断日期是否合法(1~28/29/30/31),你可以用一个数组表示每月的天数,如daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31],但你会发现daysInMonth[1]这个值可能是28或29,你又要写一个判断闰年的函数来解决这个问题......

    这至少要花费20行以上的代码来完成这件事,而通过javascript中的Date对象,我们只需要1行代码即可完成上述功能。

    function check(date){

        return (new Date(date).getDate()==date.substring(date.length-2));

    }

    date为一个待检查的类日期字符串(如2013-01-01、2013/01/01、2013/01/32、2013/02/29),不论这个字符串是否正确

    通过新建的Date对象(new Date(date)),可以识别出该日期是否正确,如果不正确则返回Invalid Date

    但这样会有一个bug,当日期的值在1-31之间,new Date总返回一个新的对象,不论该月份是否存在这个日期(如2013-02-30将返回日期对象Sat Mar 02 2013 08:00:00 GMT+0800 (中国标准时间)),返回结果是下个月的日期而不报错

    所以要用getDate()方法获取日期(new Date('2013-02-30')对象的getDate()方法将返回2)

    date.substring(date.length-2)会获取到字符串最后两位也就是日期的部分,这与Date对象的日期部分做比较,如果相等则说明日期有效,否则为无效日期

    如果日期无效则'=='左边值为NaN,右边无论是什么(''、null、undefined、NaN等)结果都为false

    2. JS实现一个列表项移入移出动画效果

    1.使用onmouseover事件、onmouseout事件、定时器setInterval和clearInterval

    2. 当触发onmouseover事件时开启一个定时器,根据列表项的整个宽度,每隔一定时间对其left或right或top或bottom属性进行增加或是减少,当其left或right或top或bottom属性等于0或者是其整个宽度时停止移动,此时说明整个列表项已经移出,这时完成了移出效果

    3 .再生成一个onmouseout事件,触发onmouseout事件与触发onmouseover事件对left或right或top或bottom属性的操作相反。

    3. js得到当前窗口内的宽度和高度  

    在javascript中得到当前窗口的高和宽  
    <body><SCRIPT  LANGUAGE="JavaScript">  
    var    s  =  "网页可见区域宽:"+  document.body.clientWidth;  
    s  +=  "\r\n网页可见区域高:"+  document.body.clientHeight;  
    s  +=  "\r\n网页可见区域高:"+  document.body.offsetWeight  +"  (包括边线的宽)";  
    s  +=  "\r\n网页可见区域高:"+  document.body.offsetHeight  +"  (包括边线的宽)";  
    s  +=  "\r\n网页正文全文宽:"+  document.body.scrollWidth;  
    s  +=  "\r\n网页正文全文高:"+  document.body.scrollHeight;  
    s  +=  "\r\n网页被卷去的高:"+  document.body.scrollTop;  
    s  +=  "\r\n网页被卷去的左:"+  document.body.scrollLeft;  
    s  +=  "\r\n网页正文部分上:"+  window.screenTop;  
    s  +=  "\r\n网页正文部分左:"+  window.screenLeft;  
    s  +=  "\r\n屏幕分辨率的高:"+  window.screen.height;  
    s  +=  "\r\n屏幕分辨率的宽:"+  window.screen.width;  
    s  +=  "\r\n屏幕可用工作区高度:"+  window.screen.availHeight;  
    s  +=  "\r\n屏幕可用工作区宽度:"+  window.screen.availWidth;  
    alert(s);  
    </SCRIPT>

    • 要使用 scrollWidth,取 document.documentElement.scrollWidth 与 document.body.scrollWidth 的最大值;
    • 要使用 clientWidth,如果 document.documentElement.clientWidth > 0,则使用 document.documentElement.clientWidth,否则使用 document.body.clientWidth。
    • scrollWidth:指在有滚动条的时候,包含的是整个滚动页面的宽度;而clientWidth则是可视页面的宽度,因此,在有滚动条的时候,clientWidth要小于scrollWidth
  • 相关阅读:
    Web开发——HTML基础(文件和网站结构)
    Web开发——HTML基础(高级文本格式 列表/style)
    Web开发——HTML基础
    Web开发——CSS基础
    Java 输入/输出——处理流(RandomAccessFile)
    Java 输入/输出——处理流(ObjectIO)
    Java 输入/输出——处理流(DataInputStream/DataOutputStream、ByteArrayInputStream/ByteArrayOutputStream)
    关于R.layout中找不到已存在的布局文件问题
    RelativeLayout常用属性整理
    配置adb环境变量
  • 原文地址:https://www.cnblogs.com/shaunZh/p/5585477.html
Copyright © 2020-2023  润新知