Der er to tilgange. Den ene er at komponere et enkelt udtryk, som håndterer alle mulige alternativer:
^[a-zA-Z][0-9][a-zA-Z0-9-,._;:]{6,}$
|
^[a-zA-Z][a-zA-Z0-9-,._;:][0-9][a-zA-Z0-9-,._;:]{5,}$
|
^[a-zA-Z][a-zA-Z0-9-,._;:]{2}[0-9][a-zA-Z0-9-,._;:]{4,}$
osv. Dette er et kombinatorisk mareridt, men det ville virke.
En meget enklere tilgang er at validere den samme streng to gange ved hjælp af to udtryk:
^[a-zA-Z0-9-,._;:]{8,}$ # check length and permitted characters
og
[a-zA-Z].*[0-9]|[0-9].*[a-zA-Z] # check required characters
EDIT:@briandfoy påpeger korrekt, at det vil være mere effektivt at søge efter hvert påkrævet tegn separat:
[a-zA-Z] # check for required alpha
og
[0-9] # check for required digit