引言:好几天没有写随笔了,项目有点紧,恰好今天项目遇到了比较大阻塞,就只好来写一篇随笔来压压惊。
1、Date类型
创建一个新的Date:(除了new Date()外)
var someDate = new Date(Date.parse('May 25,2004'));//传入的格式有:6/13/2004或May 25,2004或YYYY-MM-DDTHH:mm:ss.sssZ
var someDate = new Date(Date.UTC(2005,0,5,17,55,55));//GMT时间格式中月份是(0~11)的
要想比较两个Date的大小:(valueOf()方法)
var date1 = new Date(2007,0,1);
var date2 = new Date(2007,1,1);
alert(date1 < date2);//alert中的所有对象都相当于先调用这个对象的valueOf()方法---true
所以得到valueOf()方法在Date中是返回从传入参数那一天算起到1970年1月1日(午夜)零时的毫秒值。
2、RegExp类型
var pattern1 = /at/g; //g:表示全局匹配,而不是在发现第一个匹配项时立即停止。---匹配字符串中所有的"at"
var pattern2 = /[bc]at/i; //i :表示不区分大小写模式,即在匹配字符时忽略与字符串的大小写---匹配第一个bat或者cat,不区分大小写
var pattern3 = /.at/gi; //匹配所有改at结尾的3个字符的组合,不区分大小写
---------------------------------//RegExp中除了g,i两个flags以外,还有m:表示多行模式,即在到达一行文本末端时还会继续寻找下一行中的匹配项。
正则表达式字面量始终会共享同一个RegExp实例,而使用构造函数创建的每一个新的RegExp实例都是一个新的实例。例子如下:
var re = null;
var i;
for(i = 0;i < 4;i ++){
re = /cat/g;
re.test('catismymarst');//它只会匹配一次,因为下一次匹配就会从下标为3开始
}
for(i = 0;i < 4;i++){
re = new RegExp('cat','g');
re.test('catismymarst');//它每次都会从新创建RegExp对象,所以每次调用test都会从头开始匹配
}