Вот, пожалуйста.Просто установите для переменной myTest значение, которое вы хотите проверить, или создайте более сложный тест, если вы не доверяете Regex:)
const MY_REGEX = /^([A-Z0-9]{5}\?)|([A-Z0-9]{6}\??)$/
function test( str ) {
if( MY_REGEX.test( str ) )
document.write( str +": MATCHES<br>" );
else
document.write( str +": DOESN'T MATCH<br>" );
}
test( "AA54ZG" ); // MATCHES
test( "AA54ZG?" ); // MATCHES
test( "AA54Z?" ); // MATCHES
test( "aA54ZG" ); // DOESN'T MATCH
test( "?A54ZG" ); // DOESN'T MATCH
test( "AA54Z" ); // DOESN'T MATCH
Объяснение:
[A-Z0-9] {5}: 5 (или 6) заглавных букв или цифр.
\ ??: необязательный "?"(нужно экранировать с помощью \ ?, потому что? зарезервировано для "необязательно")
\?: требуется "?"