gpt4 book ai didi

javascript - 使用正则表达式在字符串中查找日期

转载 作者:行者123 更新时间:2023-12-03 03:00:22 26 4
gpt4 key购买 nike

我试图创建一个函数,该函数将验证字符串中是否存在有效日期(YYYY-MM-DD),然后将其作为函数结果返回。

到目前为止我有这个:

function findDate(str){
let dateReg = /^(19[7-9]\d|20[0-1][0-7])\/(0[1-9]|1[0-2])\/([0-2][1-9]|3[0-1])$/;
let matchingDate = [];
let strSplit = str.split(' ');

for(let i = 0; i < strSplit.length; i++){
if(dateReg.test(strSplit[i])){
matchingDate.push(strSplit[i]);
} else {
return 'No valid date';
}
}

return matchingDate;

}

findDate('I was born on 2017/12/05 ok?');
// findDate('She was born on 1960/08/31 ok?');
// findDate('He was born on 2010/15/31 ok?');

知道我错过了什么吗?默认情况下它会跳过测试部分。

谢谢!

最佳答案

这是因为只要函数遇到不是有效日期的字符串(基于您的正则表达式),您就会立即返回该函数。试试这个

function findDate(str){
let dateReg = /^(19[7-9]\d|20[0-1][0-7])\/(0[1-9]|1[0-2])\/([0-2][1-9]|3[0-1])$/;
let matchingDate = [];
let strSplit = str.split(' ');

for(let i = 0; i < strSplit.length; i++){
if(dateReg.test(strSplit[i])){
matchingDate.push(strSplit[i]);
}
}
return matchingDate.length == 0 ? 'No valid date' : matchingDate;

}

findDate('I was born on 2017/12/05 ok?');

关于javascript - 使用正则表达式在字符串中查找日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47425829/

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