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
}
网友评论