js Date、Math、包装对象、RegExp

javaScript的几个内置对象

Date对象

ECMAScript 5 提供了两个方法:Date.parase() 和 Date.UTC() 返回日期的毫秒数

1
2
3
4
5
6
7
8
9
var now = new Date(); //创建对象
alert(Date()); //返回一个完整的日期时间
alert(now.getDate()); //返回从1开始计数的天数
alert(now.getDay()); //返回当前周几
alert(now.getFullYear()); //返回当前年份
alert(now.getMonth()+1); //返回当前月份
alert(now.getHours()); //当地时间的小时
var then = new Date(2011, 10, 10); // 2011年10月10日

日期格式化方法

  • toDateString();
  • toTimeString();
  • toLocaleDateString();
  • toLocalTimeString();
  • toUTCString()

Math对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 控制台输出
Math.max(1,2,3,4,5);//这些数字中的最大值
Math.min(1,2,3,4,5);//返回多个数中的最小值
Math.floor(45.84334);//向下取整
Math.ceil(5.4443);//向上取整
Math.round(67.55);//四舍五入
Math.random();//随机数 0-1
parseInt(Math.random()*10+1); //随机数 1-10
parseInt(Math.random()*100+1); //随机数 1-100
Math.abs(-100);//返回绝对值
Math.pow(4,3); //4 的 3 次幂
Math.sqrt(16); //开平方
Math.sin(4);//返回正弦值
Math.PI; // π 圆周率
Math.sqrt(3); // 3 的平方根
Math.exp(3); // e 的 3 次幂
Math.log(10); // 10 的自然对数
Math.E; // 自然对数的底数

全局对象

当 JavaScript 解释器启动时,它将创建一个新的全局对象,并给它一组定义的初始属性。

  • 全局属性,如 undefined、Infinity 和 NaN;
  • 全局函数,如:isNaN()、parseInt() 和 eval();
  • 构造函数,如:Date()、RegExp()、String()、Object() 和 Array()
  • 全局对象,如:Math 和 JSON;

包装对象

  • String()
  • Number()
  • Boolean()

字符串字面量、数字字面量、布尔字面量均可以使用”.”符号引用属性值,当属性值是一个函数时,称其为方法。只有对象有属性,JavaScript 在创建字符串、数字、布尔值时会自动的通过调用 new String(); new Number(); new Boolean() 的方式调用。

RegExp 对象

var expression = /pattern/flags;

pattern 是正则表达式,可以包含字符类,限定符,分组,向前查找以及反向查找。flag是标志,有 3 种:

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

RegExp 构造函数的模式参数是字符串,在某些情况下需要双重转义;

RegExp 实例属性

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

RegExp 实例方法

  • exec() ;
    • 接收一个参数,要引用匹配模式的字符串,返回包含第一个匹配项信息的数组;
    • 没有匹配项的情况下返回 null
    • 返回的数组虽然是 Array 的实例,但包含两个属性:index 和 input
      • index 表示匹配项子在字符串中的位置
      • input 表示应用正则表达式的字符串
    • exec() 方法在设置了全局标志的情况下,每次调用该方法都会在字符串中继续查找新匹配项。
1
2
3
4
5
6
7
8
var text = "mom and dad and baby";
var pattern = /mom( and dad( and baby)?)?/gi;
var mataches = pattern.exec(text);
console.log(matches.index); // 0
console.log(matches.input); // "mom and dad and baby"
console.log(matches[0]); // "mom and dad and baby"
console.log(matches[1]); // " and dad and baby"
console.log(matches[2]); // " and baby"

总之:正则分组之后匹配到的结果如果匹配成功则会得到数组,数组中第 0 项是与整个模式匹配的字符串,从第一项开始就是数正则表达式中的左括号就可以了,左括号是第几个,则解析出来的数据就是数组中下标为该数字的元素

感谢您的支持!