关键词

JS匹配日期和时间的正则表达式示例

当需要从文本中匹配日期和时间信息时,可以使用正则表达式来准确地实现。下面是关于“JS匹配日期和时间的正则表达式示例”的完整攻略。

1. 正则表达式基础知识

在进行日期和时间信息的正则匹配时,需要掌握一些基础知识。

  • 字符集:用于匹配多个字符中的任意一个字符,用方括号([])来表示。如[abc]匹配字符a、b或c中的任意一个字符。
  • 重复次数:用于匹配前面一个字符或一组字符出现的次数,用花括号({})来表示。如a{3}匹配aaa,a{3,}匹配至少3个a,a{3,5}匹配3个到5个a。
  • 通配符:用于匹配任意单个字符,用点号(.)来表示。如a.b匹配以a开始、以b结束,中间包含任意一个字符的字符串。

2. JS匹配日期的正则表达式

2.1 匹配YYYY-MM-DD格式的日期

const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
const dateStr = '2021-12-01';
if (dateRegex.test(dateStr)) {
  console.log('日期格式正确');
} else {
  console.log('日期格式错误');
}

解释下面的正则表达式:
- ^匹配字符串的开头。
- \d匹配数字。
- {4}表示匹配4个数字。
- -匹配横杠。
- {2}表示匹配2个数字。
- $匹配字符串的结尾。

因此,表达式^\d{4}-\d{2}-\d{2}$表示匹配YYYY-MM-DD格式的日期。

2.2 匹配YYYY/MM/DD格式的日期

const dateRegex = /^\d{4}\/\d{2}\/\d{2}$/;
const dateStr = '2021/12/01';
if (dateRegex.test(dateStr)) {
  console.log('日期格式正确');
} else {
  console.log('日期格式错误');
}

与2.1示例相似,只是将横杠替换成了斜杠,如此便可以匹配YYYY/MM/DD格式的日期。

3. JS匹配时间的正则表达式

3.1 匹配HH:MM:SS格式的时间

const timeRegex = /^([0-1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9])$/;
const timeStr = '20:15:01';
if (timeRegex.test(timeStr)) {
  console.log('时间格式正确');
} else {
  console.log('时间格式错误');
}

解释下面的正则表达式:
- ^匹配字符串的开头。
- ([0-1][0-9]|[2][0-3])表示匹配00~23小时之间的数字,使用了或(|)来连接00~19和20~23两组数字。
- :匹配冒号。
- ([0-5][0-9])表示匹配00~59分钟或秒数之间的数字,同样使用了或(|)来连接两组数字。
- ([0-5][0-9])同上。
- $匹配字符串的结尾。

因此,表达式^([0-1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9])$表示匹配HH:MM:SS格式的时间。

3.2 匹配HH时MM分SS秒格式的时间

const timeRegex = /^([0-1][0-9]|[2][0-3])时([0-5][0-9])分([0-5][0-9])秒$/;
const timeStr = '20时15分01秒';
if (timeRegex.test(timeStr)) {
  console.log('时间格式正确');
} else {
  console.log('时间格式错误');
}

此正则表达式与3.1相似,只是将冒号和英文表示的时间单位改为了中文表示,如此便可以匹配HH时MM分SS秒格式的时间。

总结

以上便是JS匹配日期和时间的正则表达式示例的完整攻略。通过掌握正则表达式的基本语法和应用技巧,我们可以轻松地实现各种日期和时间信息的匹配。

本文链接:http://task.lmcjl.com/news/15809.html

展开阅读全文