在 Marklogic 中验证日期格式
Verify date format in Marklogic
我想识别其中一个元素中日期格式不正确(根据我们的项目标准)的文档,例如:。我们的应用程序标准日期格式是'[MNn,-3] [D01], [Y]'。所以我正在遍历所有 <document-create-date>
并想要识别日期字段值与 '[MNn,-3] [D01], [Y]' 格式不匹配的文档。请告诉我如何在 marklogic 中匹配日期格式。
我认为最不 processor/memory 密集的可能是使用词典(覆盖默认标记化)并使用 cts:not-query()
and do the term expansion using cts:element-value-match
的某种组合这里的逻辑是具有无效模式的文档不会它进入结果集(因为它们将被排除在词典匹配的 rem 扩展中)。因此,围绕这个和 cts:not-query()
构建一些东西应该可行。
然后归结为这是否比一些更复杂的索引更熟练,因为这种方法会为查询提供一个大的术语列表。
您可以使用字符串 match() 来评估日期值是否与您的自定义日期格式的正则表达式匹配。
if (documentCreateDate.match(/[A-Z][a-z]{2} \d{2}, \d{4})) {
"date is valid"
} else {
"date is invalid"
}
我想识别其中一个元素中日期格式不正确(根据我们的项目标准)的文档,例如:。我们的应用程序标准日期格式是'[MNn,-3] [D01], [Y]'。所以我正在遍历所有 <document-create-date>
并想要识别日期字段值与 '[MNn,-3] [D01], [Y]' 格式不匹配的文档。请告诉我如何在 marklogic 中匹配日期格式。
我认为最不 processor/memory 密集的可能是使用词典(覆盖默认标记化)并使用 cts:not-query()
and do the term expansion using cts:element-value-match
的某种组合这里的逻辑是具有无效模式的文档不会它进入结果集(因为它们将被排除在词典匹配的 rem 扩展中)。因此,围绕这个和 cts:not-query()
构建一些东西应该可行。
然后归结为这是否比一些更复杂的索引更熟练,因为这种方法会为查询提供一个大的术语列表。
您可以使用字符串 match() 来评估日期值是否与您的自定义日期格式的正则表达式匹配。
if (documentCreateDate.match(/[A-Z][a-z]{2} \d{2}, \d{4})) {
"date is valid"
} else {
"date is invalid"
}