Попробуйте это:
var patt1 = /(T|EE|EJU)\D*$/i;
Будет соответствовать последовательности нецифровых символов, начинающейся с T
, EE
или EJU
и заканчивающейся в конце строки. Если строка должна заканчиваться D
, как в ваших примерах, вы можете добавить это в:
var patt1 = /(T|EE|EJU)\D*D$/i;
Если вы хотите сопоставить его где угодно, а не только в конце строки, попробуйте это:
var patt1 = /(T|EE|EJU)\D*D/i;
РЕДАКТИРОВАТЬ: Ой! Нет, конечно, это не работает. Я попытался угадать, что вы имели в виду под [T|EE|EJU]
, потому что это класс символов, который соответствует одному символов E
, J
, T
, U
или |
(эквивалент на [EJTU|]
), и я был уверен, что это не то, что вы имели в виду. Но, черт возьми, попробуйте это:
var patt1 = /[EJTU|]\D*D/i;
Я до сих пор не понимаю, что вы пытаетесь сделать, но иногда методом проб и ошибок является единственным способом двигаться вперед. По крайней мере, я проверил это на этот раз! : P
РЕДАКТИРОВАТЬ: Хорошо, так что матч может содержать цифр, он просто не может начинаться с одного. Попробуйте это:
var patt1 = /[EJTU|]\w*D/i;