zoukankan      html  css  js  c++  java
  • 回归JavaScript基础(六)

    主题:引用类型Date、RegExp的介绍。

     

    上节主要主要介绍了Object、Array引用类型。这节将继续为大家介绍引用类型,并对书中的一些知识点进行总结与归纳,也借此巩固自己对JavaScript基础知识的掌握。(题外话:果然,语文不好是硬伤啊,从小就不喜欢写文章(⊙o⊙)… 望读者理解,我都是随性发挥的 ヘ(´ー`ヘ) )

     

    ①Date类型是在早期Java中的java.util.Date类基础上构建的。

    1 var date = new Date(); //创建一个日期对象。当语句执行时,会获取执行当时的时间

    ②Date类型使用自UTC(国际协调时间)1970年1月1日零时开始经过的毫秒数来保存日期。

    1 var date1 = Date.parse("Jul 4, 2017"); //1499097600000
    2 console.log(new Date(date1)); //Tue Jul 04 2017 00:00:00 GMT+0800 (中国标准时间)
    3 var date2 = Date.UTC(2017, 6, 4); //1499126400000 注意:月份是从0到11,巨坑!
    4 console.log(new Date(date2)); //Tue Jul 04 2017 08:00:00 GMT+0800 (中国标准时间)
    什么鬼,这两个结果并不是我想要的结果!怎么会多了8个小时。我猜测这应该和时区有关!

     ③日期也可以进行比较,666

    1 var date1 = new Date(2017, 0, 1);
    2 var date2 = new Date(2017, 1, 1);
    3 console.log(date1 < date2);  //true

    ④Date对象的方法,之间w3c上查阅即可

    ⑤RegExp正则表达式是用来匹配字符串的工具。我们可以用它来匹配字符串,看字符串是否符合我们的规则;我们可以用它来切分字符串。尽管现在很多js插件为我们提供了便捷的验证字符串方法,但作为一个前端开发者还是有必要了解正则表达式。要知道JavaScript一开始就是为了在前端判断用户输入合法而产生的!

    ⑥创建正则表达式,模型:var expression = / pattern / flags;或者new RegExp创建

    1 var regExp1 = /abcd/;
    2 var regExp2 = new RegExp('abcd');
    3 console.log(regExp1 === regExp2); //false
    4 console.log(regExp1.source === regExp2.source); //true
    书中说,创建正则表达式会调用RegExp构造函数,每次都创建新的RegExp实例。这说明每个正则表达式都是一个新的对象,导致了上面两个看似相等不等吧

    ⑦正则表达式有三种模式,flags来表示。

    1 var regExp0 = /abc/;    //不写模式的话就是普通匹配,匹配到第一个符合后立即停止
    2 var regExp1 = /abc/g;  //g:全局模式,应用所有字符串,匹配到第一个符合后继续匹配
    3 var regExp2 = /abc/i;   //i:不区分大小写模式,匹配时忽略字符串大小写
    4 var regExp3 = /abc/m; //m:多行模式,一行文本末尾时会继续查找下一行进行匹配(基本不用!)

    ⑧正则表达式中的特殊字符需要转义,如: ( [ { ^ $ | ) ? * + . ] }

    1 var regExp1 = /[ab]c/i;    //匹配第一个“ac”或“bc”,不区分大小写
    2 var regExp2 = /[ab]c/i;  //匹配第一个“[ab]c”,不区分大小写

    ⑨正则表达式中常见的匹配符。用d匹配一个数字;用w匹配一个字母或数字;用.表示任意字符,如“ab.”可以匹配“abc”、“ab1”、“ab!”等等;用*表示任意个字符(可以是0个);用+表示至少一个字符;用?表示0个或1个字符;用{n}表示n个字符;用{n,m}表示n-m个字符;用^表示行的开头,^d表示必须以数字开头;用$表示结束,d$表示必须以数字结尾。下面,举个栗子!

    1 var regExp = /^([0-9a-zA-Z\_.]+)@([0-9a-zA-Z.]+)$/;
    2 var email1 = "xu_123.home@qq.com";
    3 var email2 = "xu123@qq.org";
    4 regExp.test(email1);   // true
    5 regExp.test(email2);   // true

    ⑩正则表达式配合split切割字符串

    1 var str = "x,,u,c,h,,a,o,i";
    2 str.split(/[\,]+/);    //["x","u","c","h","a","o","i"]

    正则表达式其实还有很多知识点,这里就不一一介绍了。有兴趣可以再查阅资料深入去学习。下节将继续记录引用类型笔记 (^o^)/~

  • 相关阅读:
    移动端触屏滑动,JS事件
    解决 插件LArea 在IOS上浮出软键盘问题
    关于ajax请求后js绑定事件失效问题解决方法
    Resolving timed out after 2511 milliseconds
    docker 操作 (让容器后台运行程序不退出)
    php导出excel
    yii2 left join 查询
    搭建自用git服务器
    js 复制字符到剪切板
    win10添加软连接
  • 原文地址:https://www.cnblogs.com/xuchaoi/p/7118996.html
Copyright © 2011-2022 走看看