Skip to content

Validators

Sharprompt provides built-in validators that can be used with the validators parameter on Input, Password, and List prompts.

Usage

csharp
var secret = Prompt.Password("Type new password",
    validators: new[] { Validators.Required(), Validators.MinLength(8) });

Built-in Validators

ValidatorDescription
Validators.Required()Ensures the input is not empty
Validators.MinLength(length)Ensures the input has at least the specified number of characters
Validators.MaxLength(length)Ensures the input does not exceed the specified number of characters
Validators.RegularExpression(pattern)Ensures the input matches the specified regular expression

Combining Validators

You can combine multiple validators:

csharp
var name = Prompt.Input<string>("What's your name?",
    validators: new[]
    {
        Validators.Required(),
        Validators.MinLength(3),
        Validators.MaxLength(50)
    });

Custom Validators

Validators are functions that return a ValidationResult. You can create custom validators:

csharp
var email = Prompt.Input<string>("Enter your email",
    validators: new Func<object?, ValidationResult?>[]
    {
        Validators.Required(),
        input =>
        {
            var value = input?.ToString();
            if (value != null && !value.Contains('@'))
            {
                return new ValidationResult("Please enter a valid email address");
            }
            return ValidationResult.Success;
        }
    });

Released under the MIT License.