Validators

Built-in validation rules for use with useForm and useField. All accept an optional custom error message.

import {
  required, minLength, maxLength,
  pattern, min, max, email, url, custom
} from "@allem-sdk/forms";

Available validators

ValidatorSignatureDescription
requiredrequired(msg?)Field must not be empty
minLengthminLength(n, msg?)Minimum string length
maxLengthmaxLength(n, msg?)Maximum string length
minmin(n, msg?)Minimum numeric value
maxmax(n, msg?)Maximum numeric value
patternpattern(regex, msg?)Must match regex
emailemail(msg?)Valid email format
urlurl(msg?)Valid URL (http/https)
customcustom(fn)Custom validation function

Custom validator

const passwordStrength = custom<string>((value) => {
  if (value.length < 8) return "Must be at least 8 characters";
  if (!/[A-Z]/.test(value)) return "Must contain an uppercase letter";
  if (!/[0-9]/.test(value)) return "Must contain a number";
  return undefined; // valid
});

const form = useForm({
  password: {
    initialValue: "",
    rules: [required(), passwordStrength],
  },
});