前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Date与RegExp常见用法

Date与RegExp常见用法

作者头像
努力的Greatiga
发布2022-07-25 10:24:38
8500
发布2022-07-25 10:24:38
举报
文章被收录于专栏:前端开发与网站建设

Date

定义

使用 Date 的构造函数

  • 可以使用 Date.parse()Date.UTC() 来作为参数传入 Date的构造函数中
  • parse接受的是特定格式的日期字符串,不同的浏览器、不同的时区格式也不同,若字符串不能表示为日期则返回NaN
  • UTC的参数是年、月、日、时等等类推,年月两个参数必须指定,其余不指定则默认为0。另外,参数月份是从0开始至11
代码语言:javascript
复制
var a = new Date();
var b = new Date(Date.parse("May 17,2020"));
var c = new Date(Date.UTC(2020,5,27,17,58,37));
console.log(a);//Sat Jun 27 2020 11:06:27 GMT+0800 (中国标准时间)
console.log(b);//Sun May 17 2020 00:00:00 GMT+0800 (中国标准时间)
console.log(c);//Sun Jun 28 2020 01:58:37 GMT+0800 (中国标准时间)

使用**Date.now()**来简化Date分析代码的时间

代码语言:javascript
复制
var a = Date.now();
setTimeout(()=>{
  var b = Date.now();
  console.log(b-a);//3001
},3000);
console.log(a);//1593228072462

继承的方法

toString()toLocalString() 方法

他们会根据不同浏览器不同时区格式返回表示日期的字符串。

日期格式化

常用的几种方式,以实例记忆

  • toDateString() 周几、年月日
  • toTimeString() 时分秒、时区
  • toLocaleDateString() 特定格式的年月日、周几
  • toLocaleTimeString() 特定格式的时分秒
  • toUTCString() 特定格式UTC日期
代码语言:javascript
复制
var a = new Date();
console.log(a.toDateString());//Sat Jun 27 2020
console.log(a.toTimeString());//11:36:51 GMT+0800 (中国标准时间)
console.log(a.toLocaleDateString());//2020/6/27
console.log(a.toLocaleTimeString());//上午11:38:36
console.log(a.toUTCString());//Sat, 27 Jun 2020 03:39:31 GMT

日期、时间常用方法

  • getFullYear() setFullYear() 传入四位数
  • getMonth() setMonth() 传入值大于0,超过11则增减年份
  • getDate() setDate() 传入值1~31,超过则增加月份
  • getHours() setHours() 传入0~23,超过增加天数
  • getMinutes() setMinutes() 传入0~59,超过增加小时数
  • getSeconds() setSeconds() 传入0~59,超过增加分钟数

编写一个倒计时

代码语言:javascript
复制
var a = new Date("2020/9/1 08:35:37");
var end = a.getTime();
function sumTime() {
  var last = Date.now();
  var days, dayRm, hours, hourRm, mins, minRm, secs;
  days = (end-last)/(3600*1000*24);
  dayRm = (end-last)%(3600*1000*24);
  hours = dayRm/(3600*1000);
  hourRm = dayRm%(3600*1000);
  mins = hourRm/(60*1000);
  minRm = hourRm%(60*1000);
  secs = minRm/(1000);
  console.log(parseInt(days) + ' 天 ' + parseInt(hours) + ' 时 ' + parseInt(mins) + ' 分 ' + parseInt(secs) +' 秒 ');
}
console.log('距开学还有\n');
setInterval(()=> {
  sumTime();
},1000);

RegExp

定义

正则表达式,可使用字面量也可以使用构造函数。不一样的是字面量始终是共享一个RegExp实例,而构造函数创建的每一个都是新实例,但是当重复进行相同的查找时就会出现问题,所以ES5之后规定,字面量模式也要像构造函数一样创建新的实例

/ pattern / flags

  • pattern 又称为模式,包含字符类、限定符、分组、向前查找及反向应用
  • flags 匹配模式
代码语言:javascript
复制
var reg = /great/g;
var regs = new RegExp("great","g");

紧跟表达式后的是匹配模式标志

  • g -> global全局模式,应用于所有字符串
  • i -> case-insensitive模式,忽略大小写
  • m -> multiline 模式,搜完一行还会继续下一行

实例属性

  • global ignoreCase multiline

这三个属性可以测试模式 pattern 是否是对应模式 例如pattern.global

  • lastIndex

表示开始搜索的下一个匹配项字符位置,从0开始

常用模式的符号

元字符

  • \d 匹配数字,\D 匹配非数字
  • \w 匹配字母、数字、汉字、下划线,\W 前面的非情况
  • \s 匹配任意空白符,包括回车、制表、换行,\W 匹配任意非空白符
  • . 号匹配空白符以外的所有字符
  • [] 匹配方括号中所有字符,[^] 前面的非情况

连接符

符号 -,在方括号中使用,指定范围,n~m,[n-m],一般指数字和字母的范围

限定符

规定指定的字符出现的次数

  • 重复1或者更多次,* 重复0或者更多次,? 重复0或1次

  • {n},重复 n 次,{n,} 重复 n 或者更多次,{n,m} 重复n到m次

定位符

  • ^ 限定开始字符
  • $ 限定结尾字符
  • \b 限定边界字符,规定边界以什么分割,比如空格,通常用来匹配单词

常用转义字符

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

这一类字符不转义就会被当做各种限定、连接、定位符处理

分组符以及选择符

  • (abc) 表示匹配整一个 abc
  • [abc] 表示匹配a、b、c中的一个
  • | 为选择符,表示或 (yes|no) yes或no

实例方法

exec()

接受一个参数,即要搜索匹配的字符串,该方法返回一个Array实例,该实例包括两个属性 index 和 input,index 表示匹配项在字符串中的位置,input 表示正则表达式应用到的字符串。

代码语言:javascript
复制
var reg = /.+\.(jpg|png|text)/g;
var result = reg.exec("great.png");
console.log(result.index);//0
console.log(result[0])//great.png
console.log(result.lastIndex);//undefined

test()

接受一个字符串参数,模式与其匹配返回 true,否则为 false

代码语言:javascript
复制
var reg = /.+\.(jpg|png|text)/g;
var result = reg.test("great.png");
console.log(result);//true

RegExp的属性

opera不支持 input,lastMatch,lastParen,multiline Internet Explorer不支持multiline

编写常用的手机号、邮箱号的筛选

代码语言:javascript
复制
var phone = /1[0-9]{10}/g
console.log(phone.test("13638707775"));//true
console.log(phone.test("23638707775"));//false
console.log(phone.test("1363870"));//false

var email = /[a-zA-Z0-9_]+@[0-9a-zA-Z]+\.(com|net)/g //邮箱登录名支持字母、数字、下划线
console.log(email.test("grea_12tiga@126.com"));//true
console.log(email.test("app@123.net"));//true
console.log(email.test("app%@123.net"));//false
console.log(email.test("app@123.54"));//false
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Date
    • 定义
      • 继承的方法
        • 日期格式化
          • 日期、时间常用方法
          • RegExp
            • 定义
              • 实例属性
                • 常用模式的符号
                  • 元字符
                  • 连接符
                  • 限定符
                  • 定位符
                  • 常用转义字符
                  • 分组符以及选择符
                • 实例方法
                  • exec()
                  • test()
                • RegExp的属性
                  • 编写常用的手机号、邮箱号的筛选
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档