美文网首页
JS引用类型之Date和RegExp

JS引用类型之Date和RegExp

作者: 7天苹果 | 来源:发表于2017-08-05 20:35 被阅读20次

    Date类型


    Date类型使用自UTC1970年1月1日零点开始经过的毫秒数来保存日期。
    要创建一个日期对象,使用new操作符和Date构造函数即可:

    var now = new Date();
    
    • 在调用Date构造函数不传递参数的情况下,返回当前日期
    不传递参数
    • 传递指定毫秒数,返回从UTC1970年1月1日零点开始经过的毫秒数

    三个方法

    • Date.parse():接收一个表示日期的字符串参数,然后尝试根据这个字符串返回相应的日期的毫秒数。这个方法的行为因实现而异,而且通常是因地区而异。
      例如:要为2004年5月25日创建一个日期对象:

    如果传入Date.parse()方法的字符不能表示日期,那么它会返回NaN。实际上,如果直接将表示日期的字符串传递给Date构造函数,也会在后台调用Date.parse()。


    结果相同
    • Date.UTC():同样返回表日期的毫秒数,但它与Date.parse()在构建时使用不同的信息。
      参数:年份(必须)、基于0的月份(一月是0,二月是1,...)(必须)、月中的哪一天(1到31)、小时数(0到23)、分钟、秒及毫秒数。

    日期和时间都基于本地时区。

    • Date.now():ECMAScript5添加了Date.now()方法,返回表示调用这个方法时的日期和时间的毫秒数。


    继承的方法

    toLoaleString():会按照与浏览器设置的地区相适应的格式返回日期的时间。
    toString():返回待有时区信息的日期和时间
    valueOf():返回日期的毫秒表示。因此可以方便地使用比较操作符来比较日期值。

    var date1 = new Date(2007,0,1);  //January 1,2007
    var date2 = new Date(2007,1,1);   //"February 1,2007"
    
    alert(date1 < date2);   //true
    alert(date1 > date2);   //false
    

    日期格式化方法

    格式化日期方法

    RegExp类型


    创建一个正则表达式:

    var expression = /cat/g;   //正则表达式字面量
    var reg = new RegExp("cat",g);   //使用RegExp构造函数创建
    

    正则表达式字面量始终会共享一个RegExp实例,而使用构造函数创建的每一个新RegExp实例都是一个新实例

    flags:

    • g:表示全局模式
    • i:表示不区分大小写模式
    • m:表示多行模式

    RegExp实例属性

    global:布尔值,表示是否设置了g标志。
    ignoreCase:布尔值,表示是否设置了i标志。
    lastIndex:整数,表示开始搜索下一个匹配项的字符位置,从0算起。
    multiline:布尔值,表示是否设置了m标志。
    source:正则表达式的字符串表示,按照字面量形式而非构造函数中的字符串模式返回
    

    RegExp实例方法

    • exec()方法:接收一个参数,即要应用模式的字符串,然后返回包含第一个匹配信息的数组;或者在没有匹配项的情况下返回null。返回的虽然是Array的实例,但包含两个额外属性 :index和input。index表示匹配项在字符串中的位置,而input表示应用正则表达式的字符串。
    var string='red';
    var pattern=/\w/g;
    var match=pattern.exec(string);
    console.log(match);   //[ 'r', index: 0, input: 'red' ]
    var match=pattern.exec(string);
    console.log(match);   //[ 'e', index: 1, input: 'red' ]
    
    • test()方法:接收一个参数,在模式与该参数匹配的情况下返回true,否则返回false
    • RegExp实例继承的toLocaleString()和toString()方法都会返回正则表达式的字面量,与创建正则表达式的方式无关。

    RegExp构造函数属性

    input:最近一次要匹配的字符串。
    lastMatch:最近一次的匹配项
    lastParen:最近一次匹配的捕获组
    leftContext:input字符串中lastMatch之前的文本
    multiline:布尔值,表示是否所有表达式都使用多行模式
    rightContext:input字符串中lastMatch之后的文本
    

    使用实例:

    var text = "this has been a short summer";
    var pattern = /(.)hort/g;
    
    if(pattern.test(text)){
      alert(RegExp.input);   //this has been a short summer
      alert(RegExp.leftContext);   //this has been a 
      alert(RegExp.rightContext);  //summer
      alert(RegExp.lastMatch);   //short
      alert(RegExp.lastParen);  //s
      alert(RegExp.multiline);  //false
     }
    

    相关文章

      网友评论

          本文标题:JS引用类型之Date和RegExp

          本文链接:https://www.haomeiwen.com/subject/nycwlxtx.html