本篇介绍了关于JavaScript中的引用类型——Date以及RegExp
Date类型
Date类型使用自UTC1970年1月1日零点开始经过的毫秒数来保存日期。
要创建一个日期对象,使用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():返回日期的毫秒表示。因此可以方便地使用比较操作符来比较日期值。
日期格式化方法
RegExp类型
创建一个正则表达式:
|
|
正则表达式字面量始终会共享一个RegExp实例,而使用构造函数创建的每一个新RegExp实例都是一个新实例
flags:
- g:表示全局模式
- i:表示不区分大小写模式
- m:表示多行模式
RegExp实例属性
|
|
RegExp实例方法
- exec()方法:接收一个参数,即要应用模式的字符串,然后返回包含第一个匹配信息的数组;或者在没有匹配项的情况下返回null。返回的虽然是Array的实例,但包含两个额外属性 :index和input。index表示匹配项在字符串中的位置,而input表示应用正则表达式的字符串。
|
|
- test()方法:接收一个参数,在模式与该参数匹配的情况下返回true,否则返回false
- RegExp实例继承的toLocaleString()和toString()方法都会返回正则表达式的字面量,与创建正则表达式的方式无关。
RegExp构造函数属性
123456input:最近一次要匹配的字符串。lastMatch:最近一次的匹配项lastParen:最近一次匹配的捕获组leftContext:input字符串中lastMatch之前的文本multiline:布尔值,表示是否所有表达式都使用多行模式rightContext:input字符串中lastMatch之后的文本
使用实例: