

유효성 검사
ex) 웹사이트 “회원가입” 할때?
아이디, 이메일, 비번 필수
암호는 숫자와 특수문자 포함 등등..
→ 이런거 검사하는 기능을 유효성 검사
최소 기능 제품(MVP) 만들기 연습
학습 목표
* DOM 기초 실습을 통한 구체적 사용법
querySelector
onclick, onkeyup, addEventListener 메소드
이벤트 핸들러 함수 → 이벤트 발생한 곳의 정보 확인
이벤트 핸들러 함수 → 유효성 검사 실행
* 유효성 검사에 필요한 기술 요소
검사에 필요한 HTML 엘리먼트, CSS 속성
- display: none
- 유효성 검사에 활용할 수 있는 정규 표현식 사용법 기초
* 관심사 분리를 적용하거나 유효성 검사 함수를 따로 분리해서 설계하기
유효성 검사 hands-on 1
엘리먼트를 화면에서 사라지게 하는 방법
몇가지 방법이 있지만 실무적으로는
case1) CSS 파일에서 클래스 스타일링
/* hide 클래스에다가 스타일링해서 처음 메시지 숨기기 적용*/
.hide {
display: none;
}
case2) CSS display 속성을 자바스크립트로 조작; 비추천
//_node_.styel.display=’none’; 이런 방식
elFailureMessage.style.display='none';
자바스크립트를 이용한 CSS 클래스 추가/삭제
.classList 메서드 이용
ex1) 클래스 삭제
// elFailureMessage.classList.remove('hide')
// 클래스 추가시에는 classList.add() 사용
유효성 검사 hands-on 2
입력값 가져오기: value 메서드 이용
node.value
console.log(elInputUsername.value)
유효성 검증 함수 구현 및 조건문 적용
유효성 검증과 관련된 조건문 등을 모듈처럼 분리해서 작성
// 글자 수가 4개 이상인지 검증; true,false → 조건문만 따로 작성(함수화)
function isMoreThan4Length(value){
return value.length >=4
}
유효성 검증 함수 구현
// 아이디 입력창에 글자를 키보드로 입력할 때? onkeyup(이벤트 속성)
//! 이벤트
elInputUsername.onkeyup = function(){
if(isMoreThan4Length(elInputUsername.value)){
//! 사용할 수 있는 아이디입니다 메시지가 출력 -> 성공메시지니깐
//! hide 를 조절하는 코드를 짜야…
//! 성공 메시지가 보여야 함; 숨겨진 옵션을 삭제
elSuccessMessage.classList.remove('hide');
//! 실패 메시지가 가려져야 함
elFailureMessage.classList.add('hide');
}
else{
//! 성공 메시지가 숨겨져야 함; 옵션을 추가
elSuccessMessage.classList.add('hide');
//! 실패 메시지가 보여야 함
elFailureMessage.classList.remove('hide');
}
}
이벤트(Event)란?
DOM에서 이벤트는 마우스를 클릭하거나, 키보드를 누르는 등의 사용자 액션에 의해 발생
브라우저 창 크기를 조절하거나, 스크롤하는 것도 DOM 이벤트의 일종
이벤트가 발생할 때 실행되는 함수; 이벤트 핸들러
→ 이벤트 속성(ex. onclick)에 이벤트 핸들러를 등록할 때는 함수 그 자체로 등록
ex) 어떤 버튼 btn가 존재한다고 가정하고 btn이 눌렀을때 console.log() 출력
function handler() {
console.log('버튼이 눌렸습니다!');
}
btn.onclick = handler; // 함수 자체로 등록(o)
// btn.onclick = handler(); // 함수 실행을 등록한 것(x)
이벤트와 관련된 속성은 on 접두어가 붙음
→ onclick, onkeyup 등...
유용한 유효성 검증 함수
// 유용한 유효성 검증 함수
// [유효성 검증 함수]: 영어 또는 숫자만 가능
function onlyNumberAndEnglish(str) {
return /^[A-Za-z][A-Za-z0-9]*$/.test(str); // 결과값은 boolean: true, false
}
// [유효성 검증 함수]: 최소 8자 이상하면서, 알파벳과 숫자 및 특수문자(@$!%*#?&) 는 하나 이상 포함
function strongPassword(str) {
return /^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$/.test(str);
} // 결과값은 boolean: true, false
'SE Bootcamp 내용 정리' 카테고리의 다른 글
js/node – 고차 함수 (0) | 2021.09.15 |
---|---|
js/browser - DOM -2 (0) | 2021.09.13 |
js/brower - DOM -1 (0) | 2021.09.10 |
얕은 복사, 깊은 복사 내용에 대한 정리? (0) | 2021.09.10 |
js/node - spread/rest 문법 (0) | 2021.09.09 |