728x90
반응형
이 프로그램은 다양한 정규식(RegEx) 패턴을 사용하여 문자열을 매칭하고, 유효성을 검사하며, 특정 패턴을 추출하거나 대체하는 예제를 보여줍니다.
// 정규식 예제 모음
// 1. 간단한 문자열 매칭
const helloRegex = /hello/; // "hello"라는 단어를 찾는 정규식
console.log('hello world'.test(helloRegex)); // true
console.log('hi world'.test(helloRegex)); // false
// 2. 숫자 매칭
const digitRegex = /\d/; // 숫자 하나를 찾는 정규식
console.log('There are 3 cats'.match(digitRegex)); // ['3']
// 3. 이메일 유효성 검사
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
// 유효한 이메일 예시
console.log(emailRegex.test('test@example.com')); // true
// 유효하지 않은 이메일 예시
console.log(emailRegex.test('test@.com')); // false
// 4. 전화번호 유효성 검사
const phoneRegex = /^\(?([0-9]{3})\)?[-]?([0-9]{3})[-]?([0-9]{4})$/;
// 유효한 전화번호 예시
console.log(phoneRegex.test('123-456-7890')); // true
console.log(phoneRegex.test('(123)456-7890')); // true
// 유효하지 않은 전화번호 예시
console.log(phoneRegex.test('1234567')); // false
// 5. URL 유효성 검사
const urlRegex = /^(https?:\/\/)?([a-z0-9\-]+\.)+[a-z]{2,6}(\/[^\s]*)?$/i;
// 유효한 URL 예시
console.log(urlRegex.test('https://www.example.com')); // true
console.log(urlRegex.test('http://example.co.kr/path')); // true
// 유효하지 않은 URL 예시
console.log(urlRegex.test('htp:/example.com')); // false
// 6. 플래그 사용 예제
const exampleString = "Hello hello HeLLo";
const flagRegex = /hello/gi; // 대소문자 구분 없이 전체 검색
console.log(exampleString.match(flagRegex)); // ['Hello', 'hello', 'HeLLo']
// 7. 고급 사용 사례: 단어 대체
const text = "This is bad.";
const censoredText = text.replace(/bad/, '***'); // "bad"를 "***"로 대체
console.log(censoredText); // "This is ***."
// 8. 고급 사용 사례: 특정 패턴 추출 (해시태그)
const hashtagText = "Here is a #hashtag and another #example.";
const hashtags = hashtagText.match(/#\w+/g); // 모든 해시태그 추출
console.log(hashtags); // ['#hashtag', '#example']
// 9. 오류 처리: 이메일 유효성 검사 함수
function validateEmail(email) {
if (!emailRegex.test(email)) {
console.log("유효하지 않은 이메일 주소입니다.");
} else {
console.log("유효한 이메일 주소입니다.");
}
}
validateEmail('user@domain.com'); // 유효한 이메일 주소입니다.
validateEmail('user@.com'); // 유효하지 않은 이메일 주소입니다.
- 간단한 문자열 매칭: /hello/라는 정규식을 사용하여 문자열에 "hello"가 포함되어 있는지 확인합니다. test 메소드를 통해 매칭 여부를 불리언 값으로 반환합니다.
- 숫자 매칭: /\d/ 정규식을 사용하여 문자열에서 숫자 하나를 찾습니다. match 메소드를 사용하여 매칭된 숫자를 배열로 반환합니다.
- 이메일 유효성 검사: 이메일 형식을 검증하기 위한 정규식을 만들고, 유효한 이메일과 유효하지 않은 이메일 예시를 통해 검증합니다.
- 전화번호 유효성 검사: 다양한 형식의 전화번호를 검증하기 위한 정규식을 작성하고, 여러 예시를 통해 올바른 형식을 확인합니다
- URL 유효성 검사: URL 형식을 검증하기 위한 정규식을 만들고, 유효한 URL과 그렇지 않은 URL을 테스트합니다.
- 플래그 사용 예제: g(전역 검색)와 i(대소문자 구분 없음) 플래그를 사용하여 문자열에서 "hello"의 모든 변형을 찾아 배열로 반환합니다.
- 고급 사용 사례 - 단어 대체: replace 메소드를 사용하여 문장에서 특정 단어("bad")를 "***"로 대체합니다.
- 고급 사용 사례 - 특정 패턴 추출: 문자열에서 해시태그를 추출하기 위해 /#[\w]+/g 정규식을 사용하고, match 메소드를 통해 모든 해시태그를 배열로 반환합니다.
- 오류 처리 - 이메일 유효성 검사 함수: validateEmail 함수를 통해 입력된 이메일이 유효한지 검사하고, 결과에 따라 다른 메시지를 출력합니다.
이 프로그램을 통해 정규식을 활용한 다양한 문자열 처리 방법을 실습할 수 있으며, 각 정규식의 역할과 사용법을 명확하게 이해할 수 있습니다.
728x90
반응형
'개발 지식' 카테고리의 다른 글
java 정규식 패턴 예시 (0) | 2025.04.12 |
---|---|
python 정규식 예제 (0) | 2025.04.11 |