A validation function, suitable for use with InputValidator$add_rule()
,
that checks whether input values match the specified regular expression.
sv_regex(
pattern,
message,
ignore.case = FALSE,
perl = FALSE,
fixed = FALSE,
useBytes = FALSE,
invert = FALSE
)
Character string containing a regular expression (or character
string if fixed = TRUE
) to be tested against. If a character vector of
length 2 or more is supplied, the first element is used with a warning.
The validation error message to use if a value fails to match the pattern.
Options passed through to
base::grepl()
.
A function suitable for use as an
InputValidator$add_rule()
rule.
The sv_email()
and sv_url()
functions, which are specialized
regex-based functions for validating email addresses and URLs.
Other rule functions:
compose_rules()
,
sv_between()
,
sv_email()
,
sv_equal()
,
sv_gte()
,
sv_gt()
,
sv_in_set()
,
sv_integer()
,
sv_lte()
,
sv_lt()
,
sv_not_equal()
,
sv_numeric()
,
sv_optional()
,
sv_required()
,
sv_url()
## Only run examples in interactive R sessions
if (interactive()) {
library(shiny)
library(shinyvalidate)
ui <- fluidPage(
textInput("lookup_id", "Lookup ID")
)
server <- function(input, output, session) {
# Validation rules are set in the server, start by
# making a new instance of an `InputValidator()`
iv <- InputValidator$new()
# Basic usage: `sv_regex()` requires both a regex
# pattern and message to display if the validation
# of `input$lookup_id` fails
iv$add_rule(
"lookup_id",
sv_regex("^[a-zA-Z0-9]*$", "Only alphanumeric characters allowed")
)
# Finally, `enable()` the validation rules
iv$enable()
}
shinyApp(ui, server)
}
# As an alternative to the above example, the
# following snippet can serve to replace the
# `iv$add_rule(...)` statement
# If you're more comfortable with wildcards
# (i.e., globbing) than with regular expressions,
# use `glob2rx()` in `pattern`
# iv$add_rule(
# "lookup_id",
# sv_regex(
# pattern = glob2rx("*.png"),
# message = "A filename ending in 'png' was expected",
# ignore.case = TRUE
# )
# )