JavaScript正则表达式实现年月日筛选详解

作者:半夏

时间:2026-10-25

浏览:191

本文详细介绍如何在JavaScript中使用正则表达式筛选和验证年月日格式。通过解析组匹配原理,分别针对年、月、日的数值范围构建正则模式,并提供yyyy-mm-dd及yyyymmdd两种常见格式的完整代码示例,帮助开发者掌握日期字符串的高效过滤方法。

文章目录

在需要对日期字符串进行筛选时,利用正则表达式的检索功能是一种高效手段。本文将深入分析正则表达式中组匹配的基础概念,并通过代码演示展示其应用。掌握这一匹配机制后,即可进一步探讨如何具体构建用于筛选日期的正则规则,以下是关于正则表达式在日期处理中的详细解析。

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

以上介绍了在JavaScript中正则表达式筛选年月日的方法,相信经过上述分析,读者已能理解筛选的逻辑步骤,后续可通过代码练习加以巩固。

实例扩展:

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。

至此,关于JavaScript使用正则表达式筛选年月日的实例方法介绍完毕,更多相关js正则表达式筛选年月日内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章