String

Short string. Typically used for titles, names and labels. If you need a basic multi-line string input, use the text-type. If you need text with markup and structured data, use block text.

Properties

  • REQUIREDtypestring

    Required. Value must be set to string.

Options

  • listarray

    A list of predefined values that the user can choose from. The array can either include string values ['sci-fi', 'western'] or objects [{title: 'Sci-Fi', value: 'sci-fi'}, ...]

  • layoutstring

    Controls how the items defined in the list option are presented. If set to 'radio' the list will render radio buttons. If set to 'dropdown' you'll get a dropdown menu instead. Default is dropdown.

  • directionstring

    Controls how radio buttons are lined up. Use direction: 'horizontal|vertical' to render radio buttons in a row or a column. Default is vertical. Will only take effect if the layout option is set to radio.

Validation

  • required()function

    Ensures that this field exists.

  • min(minLength)function

    Minimum length of string.

  • max(maxLength)function

    Maximum length of string.

  • length(exactLength)function

    Exact length of string.

  • uppercase()function

    All characters must be uppercase.

  • lowercase()function

    All characters must be lowercase.

  • regex(pattern[, options])function

    String must match the given pattern.

    options is an optional object, currently you can set options.name and options.invert.

    Providing a name will make the message more understandable to the user ("Does not match the <name>-pattern").

    Set invert to true in order to allow any value that does NOT match the pattern.

  • custom(fn)function

    Creates a custom validation rule.

Example

{
  title: 'Title',
  name: 'title',
  type: 'string'
}

Example: List of predefined strings

Input

{
  title: 'Genre',
  name: 'genre',
  type: 'string',
  options: {
    list: [
      {title: 'Sci-Fi', value: 'sci-fi'},
      {title: 'Western', value: 'western'}
    ], // <-- predefined values
    layout: 'radio' // <-- defaults to 'dropdown'
  }
}

Output

{
  "_type": "movie",
  "_id": "23407q-qwerqyt12",
  "genre": "sci-fi",
  ...
}