js用正则表达式筛选年月日的实例方法


Posted in Javascript onJanuary 04, 2021

当我们想要对日期进行筛选时,可以选择使用正则表达式的检索功能。这里涉及到正则表达式关于匹配的使用,本篇会就组匹配的基础知识带来分析和代码展示。再学会了正则表达式的匹配方法后,就筛选日期的方法进行过程介绍,下面一起来看看正则表达式的相关内容吧。

1.组匹配

正则表达式的括号表示分组匹配,括号中的模式可以用来匹配分组的内容。

/fred+/.test('fredd') // true
/(fred)+/.test('fredfred') // true

上面代码中,第一个模式没有括号,结果+只表示重复字母d,第二个模式有括号,结果+就表示匹配fred这个词。

正则表达式内部,还可以用\n引用括号匹配的内容,n是从1开始的自然数,表示对应顺序的括号。

var tagName = /<([^>]+)>[^<]*<\/\1>/;
tagName.exec("<b>bold</b>")[1]
// 'b'

上面代码中,圆括号匹配尖括号之中的标签,而\1就表示对应的闭合标签。

2.匹配年月日

比如yyyy-mm-dd格式为例。

要求匹配:

2017-06-10

分析:

年,四位数字即可,可用[0-9]{4}。

月,共12个月,分两种情况01、02、……、09和10、11、12,可用(0[1-9]|1[0-2])。

日,最大31天,可用(0[1-9]|[12][0-9]|3[01])。

正则如下:

var regex = /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;
console.log( regex.test("2017-06-10") ); 
// => true

以上就是js正则表达式中筛选年月日的方法,相信在看完分析之后,已经能够理解筛选的步骤了,学会后可以就代码部分进行练习。

实例扩展:

javascript正则表达式

匹配年月日格式为yyyymmdd

年必须是19或者20开头的。

function test(str)
{
  var reg=/^((19|20)[0-9]{2})((0[1-9])|(1[0-2]))((0[1-9])|((1|2)[0-9])|(3[0-1]))$/;
  if(reg.test(str)){
alert('正确');
}
  else{
    alert('error');
  }
}

分为三个步骤

  • 先看年

((19|20)[0-9]{2})

必须是19或者20开头作为一部分,后面两个就取0-9中取两次。

  • 再看月((0[1-9])|(1[0-2]))

如果是1-9月,那么就应该显示01-09

如果第一位是0,第二位就取1-9,如果第一位是1,第二位就取0-2

  • 在看日期

((0[1-9])|((1|2)[0-9])|(3[0-1]))

如果第一位取0,第二位就可以取1-9

如果第一位取1-2,第二位就可以取0-9

如果第一位取3,第二位就可以取0-1

到此这篇关于js用正则表达式筛选年月日的实例方法的文章就介绍到这了,更多相关js正则表达式筛选年月日内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
音乐播放用的的几个函数
Sep 07 Javascript
网页和浏览器兼容性问题汇总(draft1)
Jun 01 Javascript
js 绑定带参数的事件以及手动触发事件
Apr 27 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
Jun 24 Javascript
node.js中的fs.lchownSync方法使用说明
Dec 16 Javascript
JavaScript中通过提示框跳转页面的方法
Feb 14 Javascript
Vue2单一事件管理组件通信
May 09 Javascript
javascript 封装Date日期类实例详解
May 28 Javascript
解决vue props 拿不到值的问题
Sep 11 Javascript
jQuery实现轮播图效果demo
Jan 11 jQuery
react实现移动端下拉菜单的示例代码
Jan 16 Javascript
vue+iview实现手机号分段输入框
Mar 25 Vue.js
vue中父子组件的参数传递和应用示例
Jan 04 #Vue.js
如何在VUE中使用vue-awesome-swiper
Jan 04 #Vue.js
vue项目如何监听localStorage或sessionStorage的变化
Jan 04 #Vue.js
element-ui封装一个Table模板组件的示例
Jan 04 #Javascript
ES2020让代码更优美的运算符 (?.) (??)
Jan 04 #Javascript
详解阿里Node.js技术文档之process模块学习指南
Jan 04 #Javascript
手写Vue源码之数据劫持示例详解
Jan 04 #Vue.js
You might like
真正的ZIP文件操作类(php)
2007/07/21 PHP
PHP教程 基本语法
2009/10/23 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
php通过字符串调用函数示例
2014/03/02 PHP
php时间函数用法分析
2016/05/28 PHP
Extjs4 关于Store的一些操作(加载/回调/添加)
2013/04/18 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
2013/08/23 Javascript
使用jquery hover事件实现表格的隔行换色功能示例
2013/09/03 Javascript
根据当前时间在jsp页面上显示上午或下午
2014/08/18 Javascript
JS+CSS实现滑动切换tab菜单效果
2015/08/25 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
2016/01/31 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
React diff算法的实现示例
2018/04/20 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
2018/05/22 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
python list语法学习(带例子)
2013/11/01 Python
详解Python中的装饰器、闭包和functools的教程
2015/04/02 Python
python中实现指定时间调用函数示例代码
2017/09/08 Python
python 动态加载的实现方法
2017/12/22 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
Python使用Matlab命令过程解析
2020/06/04 Python
keras实现多种分类网络的方式
2020/06/11 Python
python代码区分大小写吗
2020/06/17 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
2020/07/23 Python
纯css3制作网站后台管理面板
2014/12/30 HTML / CSS
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
html5 视频播放解决方案
2016/11/06 HTML / CSS
英国网上购买门:Direct Doors
2018/06/07 全球购物
工程造价专业大学生自荐信
2013/10/01 职场文书
员工工作表扬信范文
2014/01/13 职场文书
大一新生期末自我评价
2014/09/12 职场文书
乡党委干部党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
离职报告范文
2014/11/04 职场文书
教师个人教学总结
2015/02/11 职场文书