JavaScript-----引用类型之Date和RegExp类型

JavaScript-----引用类型

1)Object类型
2)Array类型
3)Date类型
4) RegExp类型
5) Function类型
6) 基本包装类型
7) 单体内置对象

三、Date类型

Date类型呢,是在早起java中的java.util.Date类基础上构建的,为此,此类型使用自UTC 1970年1月1日开始经过的毫秒数来保存日期。

创建一个一个日期对象,如下

var  now= new Date();

在不传递参数的情况下,新创建的对象自动获得当前的日期和时间。
1)Date.parse()方法
在传递参数的情况下,可以使用Date.parse()方法接受一个表示日期的字符串参数,不用这个方法也可以,直接在Date构造函数,也会在后台调用Date.parse(),但是呢,日期的表示方式,不同地区的写法都不太一样,比如英文的和中文的

var someDate = new Date("May 25 , 2004");

2)Date.UTC()方法
这个方法同样也返回日期的毫秒数,它的参数分别是年份,月份(基于0的月份),日,小时数(0到23),分钟,秒,毫秒数.
//时间为2000年1月1日午夜零时

var time = new Date(Date.UTC(2000,0));

//时间为2005年5月5日下午5:55:55

var alltime= new Date(Date.UTC(2005,4,5,17,55,55));

3)Date.now()方法
var start= Date.now()即可获取当前时间到1970年的毫秒数,你可能会觉得这个有啥软用,其实,这个可以判断一个方法调用的时间,调用完方法后再调用这个方法Date.now(),相减就好了
4)继承的方法
Date类型重写了toLocaleString() \toString()和valueOf().

toLocaleString() 和toString()在不同浏览器输出的方式大都不一致,在调试代码的时候比较有用,这里就不过多的描述啦,
而valueOf()方法,不返回字符串,而是返回日期的毫秒数
5)日期格式化方法
Date类型还有一些专门用于将日期格式化为字符串的方法。

 toDateString()
 toTimeString()
 toLocalDateString()
 toLocalTimeString()
 toUTCString()
 toLocaleString和toString()

6)日期/时间组件方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、RegExp类型

ECMAScript通过RegExp类型来支持正则表达式

1)我们先聊一下什么是正则表达式

var expression =/ pattern / flags

看到上面的表达式是不是吓一跳,写的什么鬼呢哈哈
这里解释一下,pattern是指正则表达式,包括字符类,限定符,分组,向前查找以及反向引用

而这里的flags呢,的意思是每个正则表达式都可以带有标志,用来表明表达式的行为

g :表示全局global模式,即模式将把表达式的规则应用于所有字符串,而非匹配了一个就马山停止
i:表示不区分大小写,这个就是在匹配的时候呢,忽略字符串的大小写
m:表示多行模式,就是到达一行文本末尾时还会继续查找下一行是否存在与表达式匹配的项

最终写出来的样子如下

var pp= /at/g

这个就是匹配字符串中“at”的实例,全局的模式
不过与其他正则表达式雷士,模式中所使用的元字符都必须转义,元字符包括

{  [ (  \  ^  $  |  )  ?  *  +  .  ]  }

怎么转义呢,在前面加个\

var pp2=/  \ [ bc \ ] at /i

这个就是匹配 “[bc]at” 这个字符串

你可能会觉得不转义会怎么样,下面告诉你

var pp3=/   [ bc ] at /i

这个是匹配 bat 或者cat的,[]中选择其中一个
再比如

var pp4=/ .at/gi

这个是匹配所有结尾都是at的组合

2)好了好了,回归正题,来到RegExp

var pp=/[bc]at/i
var pp2=new RegExp("[bc]at","i");

上面的表达式是相同的
当需要转义的时候,把\改成\\即可,如下
在这里插入图片描述

3)RegExp实例属性

global 布尔值 ,表示是否设置了g标志
ignoreCase布尔值 ,表示是否设置了i标志
lastIndexm 整数,表示开始搜索下一个匹配项的字符位置,从0开始
multitline布尔值,表示是否设置了m标志
source 输出正则表达式的字符串表示

4)RegExp实例方法

法一---------------exec()方法

RegExp对象的主要方法是exec() ,接受一个参数,然后返回包含匹配项信息的数组,没有匹配项的情况下返回null.返回的数组虽然是Array的实例,但包含两个额外的属性:index和input。

index表示匹配项在字符串中的位置,
而input表示应用正则表达式的字符串,也就是你要原字符串,等待你去匹配的那个。

var text="mom and dad and baby";
var pattern =/and/gi;
var matches=pattern.exec(text);
console.log(matches.index);
console.log(matches.input);
console.log(matches[0]);

在这里插入图片描述

var text="mom and dad and baby";
var pattern =/mom( and dad( and baby)?)?/gi;
var matches=pattern.exec(text);
console.log(matches.index);
console.log(matches.input);
console.log(matches[0]);
console.log(matches[1]);
console.log(matches[2]);

在这里插入图片描述
以上代码就可以看到exec的用法啦,不过呢,还有一个属性,lastIndex,这个属性是在全局模式下使用才有用的噢,每次调用exec()都会返回字符串中的下一个匹配项,直至搜索到字符串末尾为止。

法二---------------test()方法

这个方法呢,它接受一个字符串参数,如果匹配的话,就返回true,否则就返回false.因为这个经常被用在if语句中

var text1="mom and dad and baby";
var pattern =/mom/;
if(pattern.test(text1)){
    console.log(111);
}

结果返回111

5)RegExp构造函数属性

在这里插入图片描述
在这里插入图片描述

发布了17 篇原创文章 · 获赞 25 · 访问量 2026

猜你喜欢

转载自blog.csdn.net/weixin_44142985/article/details/102990391