I need to check an input field for a German IBAN. The user should be allowed to leave in white spaces and input should be validated to have a starting DE
To allow any amount of spaces anywhere:
^ *D *E( *[A-Za-z0-9]){20} *$
As you want to allow lower letters, also DE
might be lower?
^ *[Dd] *[Ee]( *[A-Za-z0-9]){20} *$
^
matches the start of the string$
end anchor*
[
character class]
defines a set/range of charactersTo allow at most one space in between each characters, replace the quantifier *
(any amount of) with ?
(0 or 1). If supported, \s
shorthand can be used to match [ \t\r\n\f]
instead of space only.
Test on regex101.com, also see the SO regex FAQ