JS判断时间字符串的合法性

从PHP后端传过来的时间字段,很可能是这样的值 -0001-11-30, 如果直接向表单的时间控件里赋值,是不符合正常情况的,需要使用以下方法判断,然后手动修改字段的值。
// 判断时间字符串是否是合法的
export const is_valid_date = (str: string): boolean => {
  const reg = /^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s((([0-1][0-9])|(2?[0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$/;


  return reg.test(str);
};

你可能感兴趣的:(javascript时间函数)