验证诸如'erere 03/05/2019'之类的文本为非法日期

时间:2019-10-23 15:48:32

标签: javascript

我正在尝试验证文本为有效日期,但是答案错误

我尝试了诸如moments和date-fns之类的库,文本是免费的 因此可以是例如'eer 05/03/2345',为此文本js Date对象创建一个有效日期。

代码示例:

var t = moment('43 / 05/2020','dd / MM / yyyy'); console.log(t.isValid())//返回true 应该为假

var t = moment('03 / 05/2020','dd / MM / yyyy',true); console.log(t.isValid())//返回false应该为真

//使用date-fns

console.log(format(new Date('ssds 3/3/2020'),'dd / MM / yyyy')); //返回true应该为false

2 个答案:

答案 0 :(得分:1)

您使用了错误的格式。格式标记区分大小写。

let t = moment('43/05/2020','DD/MM/YYYY'); 
console.log(t.isValid());

t = moment('03/05/2020','DD/MM/YYYY',true); 
console.log(t.isValid());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

您可以在此处获得更多详细信息:docs

答案 1 :(得分:0)

有一些验证日期的帖子,如果您使用的话,请看一下。

var dateEntered = $('#txtEnteredDate').val();

if (!moment(dateEntered,'MM-DD-YYYY').isValid()) {
  console.log('Invalid Date');
} else {
  console.log('Valid Date');
}

上面的代码来自以下网址:Managing Dates and Times Using Moment.js

您还可以查看以下网址:Javascript - Regex to validate date format