[java] 정규표현식으로 유효성 검사하기

심심이·2024년 2월 1일
0

java

목록 보기
28/46

정규표현식(Regular Expression) 이란?

: 특정한 규칙을 가진 문자열의 집합을 표현하기 위해 쓰이는 형식언어

	if(userid == null || userid.isBlank()) {
			System.out.println("[경고] 아이디는 공백이 아닌 글자로 입력하세요");
			return;
		} else {
			// userid 는 첫글자는 반드시 영문(대.소문자)자로 시작해야 하고 그 나머지 글자는
			// 영문자 또는 숫자로만 이루어져야 한다. !!
			// 그리고 userid의 길이는 최소 3글자, 최대 10글자로 제한한다. 
			
			// 정규표현식(Regular Expression) 이란?
			// 특정한 규칙을 가진 문자열의 집합을 표현하기 위해 쓰이는 형식언어

			// ==1. 정규표현식 패턴을 작성한다.==// 
			Pattern p = Pattern.compile("^[A-Za-z][A-Za-z0-9]{2,9}$"); 
			// ^는 시작을 의미한다.
			// $는 끝을 의미한다.
			// []는 글자 1개가 들어오는 것을 의미한다.
			// [a-z] 
			// [A-Za-z]는 글자 1개가 들어오는데 A-Z 혹은 a-z까지만 가능(=영문자만 가능)하다는 뜻
			// 연속된 숫자는 0-9로 쓰지만, 중간에 34를 빼고싶다 하면 01256789 이렇게 써야만 한다.
			// [A-Za-z0-9] 는 글자 1개가 들어오는데 영문자 또는 숫자만 가능하다.
			// [A-Za-z0-9]{2,9} 은 [A-Za-z0-9]이 최소 2번 반복 최대 9번 반복해야 한다.
			
			// == 2. 문자열이 주어진 정규식 패턴과 일치하는지 판별하는 객체를 생성한다. ==
			
			Matcher m = p.matcher(userid);
			
			//3. 판별하도록 한다.
			if(m.matches()) {//일치하면 true 불일치하면 false		
				this.userid = userid;
			} else {
				System.out.println("아이디는 첫글자는 영문이어야 하고 나머지는 영문 또는 숫자로만 이루어지며 3~10글자만 가능합니다.");			
			}
			
			

정규표현식으로 유효성 검사하기

	
	
	// 또는 성명을 정규 표현식으로 검사해보겠다. ========
	public void setName(String name) { 
		//성명은 공백이 없는 한글로만 이루어져야 하며 최소 2글자 이상 최대 6글자로만 되어져야 한다.
		// --1. 정규표현식 패턴을 작성한다. ==
		Pattern p = Pattern.compile("^[가-힣]{2,6}$"); 
		// == 2. 문자열이 주어진 정규식 패턴과 일치하는지 판별하는 객체를 생성한다. ==
		
		Matcher m = p.matcher(name);
		
		//3. 판별하도록 한다.
		if(m.matches()) {//일치하면 true 불일치하면 false		
			this.name = name;
		} else {
			System.out.println("[경고]성명은 공백이 없는 한글로만 이루어져야 하며 최소 2글자 이상 최대 6글자로만 되어져야 합니다.");			
		}
		
	}
profile
개발하는 심심이

0개의 댓글

관련 채용 정보