js正则校验yyyy-MM格式
时间: 2023-07-30 21:09:36 浏览: 159
可以使用以下正则表达式进行校验:
```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
```
注意,这个正则表达式只能校验年份和月份,如果需要完整的日期校验,需要使用更复杂的正则表达式或者其他方法。
相关问题
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 ]
前段穿yyyy-MM-dd String格式字符串怎么校验格式并转换成日期
在前端验证`yyyy-MM-dd`格式的字符串是否有效,并将其转换为日期,通常可以使用JavaScript的内置Date对象或者第三方库,如 moment.js 或者 date-fns。以下是一个简单的例子:
```javascript
// 使用正则表达式校验
function isValidDateString(dateString) {
const regex = /^\d{4}-\d{2}-\d{2}$/; // 正则匹配"yyyy-MM-dd"
return regex.test(dateString);
}
function parseDateStringToDate(dateString) {
if (isValidDateString(dateString)) {
try {
const date = new Date(dateString); // 尝试转换成Date对象
return date;
} catch (error) {
console.error('Invalid date format:', dateString);
return null; // 如果转换失败,返回null
}
} else {
return null; // 如果格式错误,也返回null
}
}
// 示例
const dateString = '2023-05-01';
const parsedDate = parseDateStringToDate(dateString);
if (parsedDate) {
console.log(parsedDate); // 输出:Sat May 06 2023 00:00:00 GMT+0800 (中国标准时间)
} else {
console.log('Invalid or not a date string.');
}
```
阅读全文