【发布时间】:2018-10-04 10:39:41
【问题描述】:
我正在尝试验证 xs:duration,然后将其转换为秒。这时候,这就是我所拥有的:
/P^([-])?(([\d.]*)Y)?(([\d.]*)M)?(([\d.]*)D)?T?(([\d.]*)H)?(([\d.]*)M)?(([\d.]*)S)?/
但是,不拒绝这些无效值(取自here):
-
P-20M必须先出现减号 -
P20MT没有时间项,所以不能出现“T” -
P1YM5D没有指定月份的值,因此不能使用“M” 呈现
我错过了什么?
我发现了一个类似的问题here,但该正则表达式仅适用于 Python。
【问题讨论】:
-
你打算在XSD中使用它
pattern吗? -
抱歉,我不太确定您在问什么。我从 XML 接收视频文件的持续时间,我想验证并将它们转换为秒。然后我将在我的 Javascript 代码中使用它来做一些计算,而不是使用任何特定的模式。
-
您要求修改模式吗?它是如何使用的?在哪里?在你使用模式的地方显示代码。
-
另外,模式不正确,它包含
^作为第二个字符。如果我删除它,-P60D不匹配,尽管据说应该匹配。请提供问题中应匹配和不应匹配的字符串列表。
标签: javascript regex xsd duration