Я знаю, що це може бути очевидним для більшості людей, які користуються RegEx часто, але у випадку, якщо хтось із читачів не знайомий з RegEx, я подумав, що слід зазначити зроблене нами спостереження, яке було б корисним для одного з моїх проектів.
У попередній відповіді від @kennytm:
^\d{5}(?:[-\s]\d{4})?$
…? = Шаблон, перш ніж він не є обов'язковим (для умови 1)
Якщо ви хочете дозволити як стандартні 5-значний, так і +4 поштові індекси, це чудовий приклад.
Щоб відповідати лише поштовим кодам у американському форматі "Zip + 4", як мені потрібно було зробити (лише умови 2 та 3), просто видаліть останній, ?щоб він завжди відповідав останній 5 символьній групі.
Нижче наведено корисний інструмент, який я рекомендую для поводження з RegEx:
https://regexr.com/
Я часто використовую цей інструмент, коли знаходжу RegEx, який робить щось подібне до того, що мені потрібно, але може бути адаптований трохи краще. Він також має чудове довідкове меню RegEx та інформаційний інтерфейс, який дозволяє вам знати, як ваші зміни впливають на відповідність зразка тексту, який ви ввели.
Якщо я щось помилився або пропустив важливу інформацію, будь ласка, виправте мене.
\d{5}([ \-]\d{4})?.