Sanity slug 验证字符是小写的

Sanity slug validate chars are lowercase

我正在构建一个使用 sanity 作为后端的 vue 网站。我不想在路由器中重写 URLS,而是希望有一个合理的模式,其中 slugs 只能是小写字母,所以,

this-is-a-slug-123 有效但 THIS-is-A-slug-123 无效,我想将此检查作为 slug 验证的一部分以阻止人们能够保存带有无效 slug 的页面。

Sanity 只有 requiredcustom 验证规则可用于类型 slug。我如何验证 slug 是否仅使用小写字符?

您可以合并一个自定义验证函数来检查正则表达式:

validation: (Rule) => Rule.required().custom((slug) => {
  if (typeof slug === "undefined") return true
  const regex = /(^[a-z0-9-]+$)/ // Regex pattern goes here
  if (regex.test(slug.current)) {
    return true
  } else {
    return "Invalid slug: Only numbers, lowercase letters, and dashes are permitted." // Error message goes here
  }
}),

这只会验证包含小写字母、破折号和数字的 slug。可以详细说明正则表达式以说明双破折号等,但希望这是一个开始。