Ваше регулярное выражение неверно, оно ищет ввод, состоящий из некоторого количества символов в наборе 1,2,A,B,C,D,E,F
. Вам нужно проверить, что первая часть - это число в диапазоне 1-22
, за которым следует символ в диапазоне A-F
. Это должно работать:
var letterNumber = /^(?:[1-9]|1[0-9]|2[0-2])[A-F]$/;
Примечание, поскольку вы проверяете только совпадение, вы должны использовать letterNumber.test(str)
вместо str.match(letterNumber)
.