gpt4 book ai didi

javascript - 需要帮助从日期中提取年份?

转载 作者:行者123 更新时间:2023-11-30 07:16:07 24 4
gpt4 key购买 nike

我正在使用正则表达式来匹配日期格式。并从日期中提取年、月、日。但我无法在这里获得完整的年度值(value)。如果我输入 2013-02-29 而不是 2013,我得到的是 20。我在这里尝试的是:-

$(document).ready(function(){
var dateVal = '2013-06-01';
var rxDatePattern = /^(19|20)\d\d(-)(0[1-9]|1[012])(-)(0[1-9]|[12][0-9]|3[01])$/;
var dtArray = dateVal.match(rxDatePattern);

dtYear = dtArray[1];
dtMonth = dtArray[3];
dtDay = dtArray[5];

jQuery.each(dtArray, function(index, value) {
console.log(index + ': ' + value);
});
});

我得到输出:-

0: 2013-06-01

1: 20

2: -

3: 06

4: -

5: 01

这是 fiddle :http://jsfiddle.net/roop1886/rYh8N/1/

这是我使用上面代码的完整代码:-

//varify date formate
jQuery.validator.addMethod(
"siteDateValidator",
function (value, element) {
var currVal = value;
if (currVal != '') {
var rxDatePattern = /^(19|20)\d\d(-)(0[1-9]|1[012])(-)(0[1-9]|[12][0-9]|3[01])$/;
var dtArray = currVal.match(rxDatePattern);
if (dtArray == null) {
return false;
}
dtYear = (dtArray[1]);
dtMonth = (dtArray[3]);
dtDay = (dtArray[5]);

if (dtMonth < 1 || dtMonth > 12) return false;
else if (dtDay < 1 || dtDay > 31) return false;
else if ((dtMonth == 4 || dtMonth == 6 || dtMonth == 9 || dtMonth == 11) && dtDay == 31) return false;
else if (dtMonth == 2) {
var isleap = (dtYear % 4 == 0 && (dtYear % 100 != 0 || dtYear % 400 == 0));
if (dtDay > 29 || (dtDay == 29 && !isleap)){
return false;
}
}
}
return true;
},
"Please enter a valid date, date format should be(yyyy-mm-dd) and year should be greater than equal to 1900."
);

最佳答案

为什么不使用 javascript Date 类中的构建?

var d = new Date("2013-02-29");
d.getFullYear(); // 2013

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

更新:您可以通过调用检测给定日期是否无效:

var valid = !isNaN(d.getTime()); // returns true if valid, false if invalid

关于javascript - 需要帮助从日期中提取年份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16962152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com