【问题标题】:Validate a Recurrence rule string验证重复规则字符串
【发布时间】:2020-04-22 18:11:52
【问题描述】:

我从 Post 请求中收到 RecurrenceRule 作为字符串,我需要验证该规则是有效格式。

我收到的字符串是这样的:

DTSTART:20200420T050000Z RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH;INTERVAL=1

如何验证这个字符串是否正确,有没有办法这样做?:

rruleVariable.tryParse("DTSTART:20200420T050000Z RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH;INTERVAL=1")

我正在使用实体框架

【问题讨论】:

  • 什么定义了有效的字符串?
  • 我对 icalendar 不熟悉,但验证规则看起来相当复杂。我不会重新发明轮子,请检查指向icalendar.org/validator.htmlstackoverflow.com/a/58633682/1048799。另外,您是否检查过 NuGet 是否有执行此操作的包?
  • 我找到了一个叫做 rrule-parser.net 我会看看如果这是我需要的
  • 只是为了更新你,rrule-parser.net 确实帮助了我。这是该项目的链接:github.com/Deep-Winter/rrule-parser.net PS:您的评论实际上很有帮助,谢谢
  • 太棒了!我认为用一些示例代码作为答案发布您的解决方案是个好主意。

标签: c# entity-framework rrule


【解决方案1】:

我可以使用 rrule-parser.net 解决这个问题

我需要验证 rrule 格式,所以我像这样使用 ParseRRule 函数

var ruleParser = RRuleParser.CreateDefault();

            try
                {
                    string parseRrule = ruleParser.ParseRRule(FREQ=WEEKLY;BYDAY=MO,TU,WE,TH;INTERVAL=1);
/*this outputs to human readable text and in case it can't parse
 it means that the Rrule string is not valid*/
                }
                catch (Exception)
                {

                    //returns error message
                }

【讨论】:

    猜你喜欢
    • 2016-10-08
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    • 2014-04-23
    • 2019-08-09
    • 1970-01-01
    • 2012-03-18
    • 1970-01-01
    相关资源
    最近更新 更多