Регулярное выражение для первых двух символов строки должно быть GE | TE | WN | TA | UE | BW, а следующие два символа должны быть RU | MT | LD

#jquery #regex

#jquery #регулярное выражение

Вопрос:

Мне нужно регулярное выражение для проверки поля с четырьмя буквами в jquery. В котором он принимает первые два, должно быть GE | TE | WN | TA | UE | BW , а следующие два символа должны быть RU |MT | LD

Пример:

 GELD (Valid)
EGLD (Invalid)
TEMT (valid)       
TETM (invalid)   
  

Мое регулярное выражение:

  ([GE|TE|WN|TA|UE|BW]{2}[RU|MT|LD]{2})
  

это неверно, оно принимает все значения между этими алфавитами.

Ответ №1:

Используйте два отдельных чередования:

 (?:GE|TE|WN|TA|UE|BW)(?:RU|MT|LD)
  

Вы допустили довольно распространенную ошибку, думая, что [RU|MT|LD] это означает RU , MT , или LD . Это не так, но на самом деле означает [DLMRTU] , то есть одну из этих шести букв.

ДЕМОНСТРАЦИЯ

Возможно, вы захотите также окружить свой шаблон начальными и конечными якорями, например, если вы хотите ограничить весь ввод для соответствия:

 ^(?:GE|TE|WN|TA|UE|BW)(?:RU|MT|LD)$