如何在 netlify-cms Gatsby starter 的 `yaml` 文件中按范围限制字符数

How to limit the number of characters by range in `yaml` file in netlify-cms Gatsby starter

我正在使用 gatsby 并使用 gatsby-starter-netlify-cms

我正在尝试为小部件中的字符数添加验证 string 我在文档中读到我们可以使用 patternregex 来实现验证

在这里你可以看到他们是如何使用它的

fields:
  - label: "Title"
    name: "title"
    widget: "string"
    pattern: ['.{20,}', "Must have at least 20 characters"] // this using regex
  - {label: "Layout", name: "layout", widget: "hidden", default: "blog"}
  - {label: "Featured Image", name: "thumbnail", widget: "image", required: false}
  - {label: "Body", name: "body", widget: "markdown"}
    comment: 'This is a multiline\ncomment'

所以我尝试这样做

    pattern: ['.{20,50}', "Must have 20 - 50 characters"]

然后尝试这样做

widget: "string", pattern: ['^[\s\S]{20,50}$', "Page Title should be 20-50 characters"]

任何帮助将不胜感激

试试这个:

pattern: ['^.{20,50}$', "Must have at least 20 characters"]

您可以在 RegExr(使用正则表达式更新)中查看它是如何工作的。

解释:

  • .: 除换行符外的任何字符
  • ^: 字符串开始
  • {20,50}:限制在 20 到 50 个字符之间
  • $:字符串结尾(在您的情况下是可选的)