“2024年04月05日”转为 “2024/04/05”
export const stringToDate = (str, format) =>{
if(!str || str instanceof Date){
return str;
}
var dateType = '(y|Y){1,4}|(m|M){1,2}|(d|D){1,2}|(h|H){1,2}|(m|M){1,2}|(s|S){1,2}';
format = format.replace(' ', '');
format = format.toUpperCase();
var formatArray = format.match(new RegExp(dateType + '|.', 'g')) || [];
var list = [], char = "";
var pattern = /[YyMmDdHhSs]/g;
for (let j = 0; j < formatArray.length; j++) {
var lbl = formatArray[j];
if(pattern.test(lbl)){
if(char){
list.push(char);
char = "";
}
list.push(lbl);
}else{
char += lbl;
if(j == formatArray.length - 1){
list.push(char);
}
}
}
for (var i = 0; i < list.length; i++) {
var item = list[i];
switch(i){
case 1:
case 3:
str = str.replace(item, "/");
break;
case 5:
str = str.replace(item, " ");
break;
case 7:
case 9:
str = str.replace(item, ":");
break;
case 11:
str = str.replace(item, "");
break;
}
}
return str;
}
“yyyy-MM-dd HH:mm:ss” 截取后为“yyyy-MM-dd”
static getOnlyDateFormat(format) {
var dateType = '(y|Y){1,4}|(m|M){1,2}|(d|D){1,2}|(h|H){1,2}|(m|M){1,2}|(s|S){1,2}';
var formatArray = format.match(new RegExp(dateType + '|.', 'g')) || [];
var list = [], add = true;
var pattern = /[YyMDd]/g;
var pattern2 = /[Hhms]/g;
for (let j = 0; j < formatArray.length; j++) {
var lbl = formatArray[j];
if (pattern.test(lbl)) {
list.push(lbl);
add = true;
} else if (pattern2.test(lbl)) {
add = false;
} else {
if (add) {
list.push(lbl);
}
}
}
return list.join("");
}
特定字符转大写
static convertToUpper(format: string): string {
return format.replace(/[yd]/g, function (match) {
return match.toUpperCase();
});
}