반응형
우편 번호 정규식
중복 가능성 :
최종 우편 번호 및 우편 정규식은 무엇입니까?
우편 번호에 대한 세 가지 조건을 모두 만족시킬 수있는 Regex가 필요합니다. 예 :
- 12345
- 12345-6789
- 12345 1234
모든 조언과 제안을 부탁드립니다. 감사 !
^\d{5}(?:[-\s]\d{4})?$
^
= 문자열의 시작.\d{5}
= 5 자리 일치 (조건 1, 2, 3)(?:…)
= 그룹화[-\s]
= 공백 (조건 3의 경우) 또는 하이픈 (조건 2의 경우)과 일치\d{4}
= 4 자리 일치 (조건 2, 3)…?
= 선택 전의 패턴 (조건 1의 경우)$
= 문자열의 끝.
나열된 세 가지 조건에 대해서만 다음 표현식이 작동 할 수도 있습니다.
^\d{5}[-\s]?(?:\d{4})?$
^\[0-9]{5}[-\s]?(?:[0-9]{4})?$
^\[0-9]{5}[-\s]?(?:\d{4})?$
^\d{5}[-\s]?(?:[0-9]{4})?$
자세한 설명은이 데모를 참조하십시오.
5 ~ 4 자리 또는 9 자리의 연속 우편 번호에 예상치 못한 추가 공백이있는 경우 다음과 같습니다.
123451234
12345 1234
12345 1234
예를 들어이 표현식은 제약 조건이 적은 보조 옵션입니다.
^\d{5}([-]|\s*)?(\d{4})?$
자세한 설명은이 데모를 참조하십시오.
정규식 회로
jex.im은 정규 표현식을 시각화합니다.
테스트
const regex = /^\d{5}[-\s]?(?:\d{4})?$/gm;
const str = `12345
12345-6789
12345 1234
123451234
12345 1234
12345 1234
1234512341
123451`;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
참고 URL : https://stackoverflow.com/questions/2577236/regex-for-zip-code
반응형
'developer tip' 카테고리의 다른 글
CSS와 같지 않은 선택기가 있습니까? (0) | 2020.07.27 |
---|---|
PHP cURL로 JSON 데이터를 POST하는 방법? (0) | 2020.07.27 |
Xcode 중복 라인 (0) | 2020.07.26 |
os.system () 호출을 피하는 방법? (0) | 2020.07.26 |
VIM + Syntastic : 검사기를 비활성화하는 방법? (0) | 2020.07.26 |