如何提取RRULE中的FREQ与UNTIL值并校验FREQ类型?
提取RRULE中的FREQ与UNTIL值并判断FREQ类型
实现步骤
- 从输入对象中取出RRULE字符串内容
- 拆分RRULE内的键值对,提取
FREQ和UNTIL的值 - 判断
FREQ是否为DAILY或YEARLY
代码示例
const input = { "recurrence": { "rrule": [ "RRULE:FREQ=DAILY;UNTIL=20230606T133000Z" ], } }; // 提取RRULE字符串 const rruleStr = input.recurrence.rrule[0]; // 去除前缀并拆分参数 const paramPairs = rruleStr.replace('RRULE:', '').split(';'); // 转换为键值对对象 const rruleParams = {}; paramPairs.forEach(pair => { const [key, value] = pair.split('='); rruleParams[key] = value; }); // 获取目标值并判断 const freqValue = rruleParams.FREQ; const untilValue = rruleParams.UNTIL; const isValidFreq = freqValue === 'DAILY' || freqValue === 'YEARLY'; // 输出结果 console.log(`FREQ值:${freqValue}`); console.log(`UNTIL值:${untilValue}`); console.log(`FREQ是否为DAILY/YEARLY:${isValidFreq}`);
代码说明
- 先从
input.recurrence.rrule数组中取出目标RRULE字符串 - 通过字符串处理剥离前缀、拆分参数对,将参数转为键值对对象便于取值
- 直接提取
FREQ和UNTIL后完成类型判断,得到结果
内容的提问来源于stack exchange,提问作者user3653474
相关产品推荐
相关产品推荐

