可以试试输入 10年封号大礼包
之类的,这个是用在 tcn 禁言时间解析的
function parseTimeString(timeString) {
const timeUnits = {
'y': 365 * 24 * 60 * 60 * 1000,
'年': 365 * 24 * 60 * 60 * 1000,
'd': 24 * 60 * 60 * 1000,
'天': 24 * 60 * 60 * 1000,
'日': 24 * 60 * 60 * 1000,
'w': 7 * 24 * 60 * 60 * 1000,
'周': 7 * 24 * 60 * 60 * 1000,
'M': 30 * 24 * 60 * 60 * 1000,
'月': 30 * 24 * 60 * 60 * 1000,
'h': 60 * 60 * 1000,
'小时': 60 * 60 * 1000,
'时': 60 * 60 * 1000,
'm': 60 * 1000,
'分钟': 60 * 1000,
's': 1000,
'秒': 1000,
'ms': 1,
'毫秒': 1,
};
// 动态构建正则表达式
const unitsPattern = Object.keys(timeUnits).join('|');
const regex = new RegExp(`(\\d+)\\s*(${unitsPattern})`, 'g');
let totalMilliseconds = 0;
let match;
while ((match = regex.exec(timeString)) !== null) {
const value = parseInt(match[1], 10);
const unit = match[2];
totalMilliseconds += value * timeUnits[unit];
}
return totalMilliseconds;
}
但是似乎对大额的数量不是很准,还多送了十几年(
求佬解决