Here is a somewhat more general answer.
1. Define the valid characters
Add the characters you want within the [ ]
square brackets. (You can add a range of characters by using a -
dash.):
// alphanumeric
static final validCharacters = RegExp(r'^[a-zA-Z0-9]+$');
The regex above matches upper and lowercase letters and numbers. If you need other characters you can add them. For example, the next regex also matches &
, %
, and =
.
// alphanumeric and &%=
static final validCharacters = RegExp(r'^[a-zA-Z0-9&%=]+$');
Escaping characters
Certain characters have special meaning in a regex and need to be escaped with a \
backslash:
(
, )
, [
, ]
, {
, }
, *
, +
, ?
, .
, ^
, $
, |
and \
.
So if your requirements were alphanumeric characters and _-=@,.;
, then the regex would be:
// alphanumeric and _-=@,.;
static final validCharacters = RegExp(r'^[a-zA-Z0-9_\-=@,\.;]+$');
The -
and the .
were escaped.
2. Test a string
validCharacters.hasMatch('abc123'); // true
validCharacters.hasMatch('abc 123'); // false (spaces not allowed)
Try it yourself in DartPad
void main() {
final validCharacters = RegExp(r'^[a-zA-Z0-9_\-=@,\.;]+$');
print(validCharacters.hasMatch('abc123'));
}