js正则校验yyyy-MM格式
时间: 2023-07-30 13:09:36 浏览: 47
可以使用以下正则表达式进行校验:
```javascript
/^\d{4}-(0?[1-9]|1[0-2])$/
```
解释一下:
- `^` 和 `$` 表示字符串的开始和结束
- `\d{4}` 表示匹配四个数字(即年份)
- `-` 表示匹配一个横杠
- `(0?[1-9]|1[0-2])` 表示一个月份,有两种情况:
- `0?[1-9]` 表示一个数字,可能有前导零,范围是 01 至 09
- `|` 表示或者
- `1[0-2]` 表示一个数字,范围是 10 至 12
完整的代码示例:
```javascript
function validateDate(dateString) {
const pattern = /^\d{4}-(0?[1-9]|1[0-2])$/;
return pattern.test(dateString);
}
console.log(validateDate('2021-01')); // true
console.log(validateDate('2021-13')); // false
console.log(validateDate('2021-1')); // false
console.log(validateDate('2021-01-01')); // false
```
注意,这个正则表达式只能校验年份和月份,如果需要完整的日期校验,需要使用更复杂的正则表达式或者其他方法。
相关问题
js正则校验yyyy-MM格式 同时该月份不能大于当前月份
可以使用如下正则表达式进行校验:
```javascript
const regex = /^(19|20)\d{2}-(0[1-9]|1[0-2])$/;
const input = '2021-01';
if (regex.test(input)) {
const year = input.slice(0, 4);
const month = input.slice(5);
const currentYear = new Date().getFullYear();
const currentMonth = new Date().getMonth() + 1; // getMonth() 返回的 month 是从 0 开始的,所以要加上 1
if (year > currentYear || (year === currentYear && month > currentMonth)) {
console.log('该月份不能大于当前月份');
} else {
console.log('校验通过');
}
} else {
console.log('格式不正确');
}
```
解释一下正则表达式:
- `^` 表示字符串开头
- `(19|20)` 表示年份必须以 19 或 20 开头
- `\d{2}` 表示接下来必须是两个数字
- `-` 表示接下来必须是一个减号
- `(0[1-9]|1[0-2])` 表示月份必须是 01 到 12 中的一个,注意要在前面加上 0,以匹配 01 到 09 的月份
- `$` 表示字符串结尾
将输入的年份和月份分别取出来后,就可以和当前年份和月份进行比较了。
yyyy-MM-dd'T'HH:mm:ss 正则校验
根据提供的引用内容,可以使用正则表达式校验"yyyy-MM-dd'T'HH:mm:ss"格式的字符串。根据引用中的正则表达式,可以使用以下正则表达式进行校验:
/^(\d{4})-(\d{2})-(\d{2})'T'(\d{2}):(\d{2}):(\d{2})$/
这个正则表达式可以检查字符串是否符合"yyyy-MM-dd'T'HH:mm:ss"格式,其中:
- (\d{4})表示四位数字的年份
- (\d{2})表示两位数字的月份和日期
- 'T'表示字母T
- (\d{2})表示两位数字的小时、分钟和秒钟
如果字符串符合此正则表达式,那么它就是一个有效的"yyyy-MM-dd'T'HH:mm:ss"格式的字符串。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [js采用正则匹配格式化时间--yyyy-MM-dd hh:mm:ss](https://blog.csdn.net/aaaaaaaa_ewf/article/details/123616950)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [Java正则校验日期格式包括所有](https://download.csdn.net/download/lvchenxv/20699965)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [js:日期正则表达式及检测](https://download.csdn.net/download/weixin_38677648/14813834)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]