JavaScript中的标准对象

JavaScript中的标准对象

JavaScript中对象类型主要有以下几种:

                number,string,Boolean,function,undefined,object;

Number()、Boolean和String()作为函数,把任何类型的数据转换为number、boolean和string类型;还可以调用对象的toString方法把其他类型转换为string类型的。

一、date对象

获取系统时间和修改系统时间

var now = new Date();// now= Fri Sep 01 2017 17:13:06 GMT+0800
now.getFullYear();    //年份
now.getMonth();     //月份,注意月份范围是0~11,所以0月就是一月
now.getDate();       // 日期 这里是01号
now.getDay();        //星期几
now.getHours();      //几点了
now.getMinutes();    //分钟
now.getSeconds();    //秒
now.getMilliseconds(); //毫秒数
now.getTime();      // 1970.01.01.00.00.00到现在的毫秒数, 以number形式表示的时间戳
//创建一个时间,这里月份是十月份,也可以直接填时间戳
var d = new Date(2017,09,01,17,42,55,645);
d.toLocaleString();    // 2017/10/1 下午5:42:55
d.toUTCString();   // Sun, 01 Oct 2017 09:42:55 GMT

二、正则表达式

精确匹配:\d匹配一个数字,\w匹配一个字母或数字,.可以匹配任意字符,\s匹配一个空格。

变长的匹配:*任意个字符,+至少一个字符,?0或1个,{n}n个字符,{n,m}n-m个字符。

更加精确:[]表示范围,[][]则是两个数了

[0-9a-zA-Z\_]     匹配一个数字,字母或者下划线

[0-9a-zA-Z\_]+   匹配至少一个数字,字母或者下划线

A|B:表示匹配A或者B;

^表示行的开头,$表示结尾。只是单纯的表示开头和结尾,不匹配字符。


创建正则表达式

第一种方式是直接通过/正则表达式/写出来,第二种方式是通过new RegExp('正则表达式')创建一个RegExp对象(字符串的两个\\实际上是一个\)。

var re1 = /^\d{3}\-\d{3,8}$/;
var re2 = new RegExp('^\d{3}\\-\\d{3,8}$');
re1.test(‘123-45678’);//用test()方法测试是否匹配


拆分

split()方法用于把一个字符串分割成字符串数组(包括其中的空格)。

‘abc   d’.split(‘’); //拆分字符串,包括其中的空格,所有元素。
‘abc   d’.split(/\s+/);// /正则表达式+/不识别表达式匹配的字符。

分组

就是提取子串,()表示要提取的分组;如下:exec()方法返回一个数组,有3个元素。

var re1 = /^\d{3}\-\d{3,8}$/;
re1.exec(‘123-45678’);//分别提取了[’123-45678’,’123’,’45678’]


一个判断时间的例子:

var re = /^([0-1][0-9]|[2][0-4])\:([0-5][0-9])\:([0-5][0-9])$/;
var t='23:59:30';
if(re.test(t)){
var a = re.exec(t);//[ '23:59:30',’’23,’59’,’30’]
alert(a);
}
else
alert('时间错误!');

正则表达式的贪婪匹配原则,尽可能多的匹配到字符,\d+会把后面直接连着的数字都匹配了。

JavaScript的正则表达式用 g,表示全局匹配,指定g标志后,每次运行exec(),正则表达式本身会更新lastIndex属性,表示上次匹配到的最后索引:

var s = 'JavaScript, VBScript, JScript and ECMAScript';
var re=/[a-zA-Z]+Script/g;

// 使用全局匹配:
re.exec(s); // ['JavaScript']
re.lastIndex; // 10

re.exec(s); // ['VBScript']
re.lastIndex; // 20

re.exec(s); // ['JScript']
re.lastIndex; // 29

re.exec(s); // ['ECMAScript']
re.lastIndex; // 44

re.exec(s); // null,直到结束仍没有匹配到
正则表达式还可以指定 i标志,表示忽略大小写, m标志,表示执行多行匹配。


三、json

 

Json是JavaScript的一个子集;把JavaScript对象变成json(就是把对象序列化成一个json格式的字符串,才能通富哦网络传递给其他计算机)有一下这些数据类型:

Number、boolean、string、array、object、null;

Json中字符集必须是utf-8,字符串用””号,对象中的键也必须是用“”双引号。

var duixiang = {
  name:'maomao',
  birth:'2014-09',
  'teacher-course':'java'
};
//把对象序列化
JSON.stringify(duixiang);//{"name":"maomao","birth":"2014-09","teacher-course":"java"}
//按照一定的格式来输出
JSON.stringify(duixiang,null,'');//{"name": "maomao","birth": "2014-09","teacher-course": "java"}
//传入数组,输出想要的键
JSON.stringify(duixiang,['name','birth'],'');//{"name": "maomao","birth": "2014-09"}
//hanshu是一个函数,对象的每个键值都会被函数处理
JSON.stringify(xiaoming, hanshu, '');

控制序列化,给对象加上一个方法:

var duixiang = {
  name:'maomao',
  birth:'2014-09',
  'teacher-course':'java',
  toJSON: function () {
        return { // 控制序列化输出
            'Name': this.name,
            'course': this['teacher-course']
        };
    }
};
JSON.stringify(duixiang);   /*{"Name":"maomao","Age":"java"}*/

反序列化

把json字符串用JSON.parse()转化为JavaScript对象,parse()接收函数

JSON.parse('{"name":"maomao","age":12}'); // Object {name: 'maomao', age: 12}
var duixiang = JSON.parse('{"name":"maomao","age":12}', function (key, value) {
    if (key === 'name') {
        return value + '同学';
    }
    return value;
});
duixiang.name;//maomao同学






猜你喜欢

转载自blog.csdn.net/qq_35418250/article/details/77837821
今日推荐