사용자 입력값 검증
사용자가 입력한 입력값을 검증하는 방법을 설명 합니다.
- 검증하고자 하는 데이터 값에 해당되는 Validation 패턴 확인
- 각 Input tag에 사용하고자 하는 검증 패턴을 data-validation 속성으로 정의
- 각 Input tag의 실시간 검증 방법을 data-validation-type 속성으로 정의
- Checkbox의 경우 data-validation-limit 를 정의하여 선택 수 검증
Validation 패턴, data-validation-alert, data-validation, data-validation-type, data-validation-limit 속성은 아래에 기술 합니다.
Validation 패턴
패턴 명 | Value |
---|---|
phone-auto-hyphen | '-'하이픈이 포함된 전화번호 형식 Replace 사용 가능 |
phone | 숫자로된 전화번호 형식 Replace 사용 가능 |
phone-compact | 지역번호 등의 앞번호를 제외한 0000-0000 형식의 전화번호 Replace 사용 가능 |
이메일 Replace 사용 가능 | |
domain | http 또는 https를 포함한 도메인 |
password-8-32 | 숫자, 영문, 특수문자(?=.*[~!@#$%^*()+-=[]{};:?.,_)형식의 8-32자 형식 Replace 사용 가능 |
password-4-8 | 숫자, 영문, 특수문자(?=.*[~!@#$%^*()+-=[]{};:?.,_)형식의 4-8자 형식 Replace 사용 가능 |
number | 숫자 Replace 사용 가능 |
number-alphabet | 숫자 + 알파벳 Replace 사용 가능 |
number-alphabet-underscore | 숫자 + 알파벳 + 언더바('_') Replace 사용 가능 |
not-empty | 입력 필수 |
ip-v4 | ip v4 형식(000.000.000.000)의 IP address Replace 사용 가능 |
check-limit | 'data-validation-limit'속성을 통해 설정된 Checkbox의 최소, 최대 선택 수 검증 |
radio-check | Radio 버튼의 선택여부 검증 |
HTML attributes
Tag : form
Name | Value | Description |
---|---|---|
data-validation-alert | yes 또는 미정의 | 입력 값 검증 오류시 alert 으로 표시 |
Tag : input
Name | Value | Description |
---|---|---|
data-validation | Validation 패턴 | 상기 Validation 패턴 색션 참조 |
data-validation-type | replace 또는 미정의 | Replace가 가능한 패턴일 경우 입력 값을 해당 패턴 형식으로 replace |
data-invalid-message | String | 입력값 검증에 실패시 표시할 메세지 |
Tag : div(Checkbox의 parent tag)
Name | Value | Description |
---|---|---|
data-validation | check-limit | 선택 수 검증 패턴 |
data-validation-limit | 1-3 | '최소-최대수'형식의 최소 및 최대 선택 가능 개수 |
Tag : div(Radio 버튼의 parent tag)
Name | Value | Description |
---|---|---|
data-validation | radio-check | Radio 버튼 선택 필수 |
HTML
<form id="frm_validation">
<div class="mb-3">
<label class="form-label">phone-auto-hyphen</label>
<input type="text" class="form-control" data-validation="phone-auto-hyphen" data-validation-type="replace" placeholder="'-'하이픈이 포함된 전화번호 형식"/>
<small class="invalid-feedback">유효한 값을 입력하세요</small>
<small class="valid-feedback">OK</small>
</div>
<div class="mb-3">
<label class="form-label">phone-compact</label>
<input type="text" class="form-control" data-validation="phone-compact" data-validation-type="replace" placeholder="숫자로된 전화번호 형식"/>
<small class="invalid-feedback">유효한 값을 입력하세요</small>
<small class="valid-feedback">OK</small>
</div>
<div class="mb-3">
<label class="form-label">email</label>
<input type="text" class="form-control" data-validation="email" data-validation-type="replace" placeholder="이메일"/>
<small class="invalid-feedback">유효한 값을 입력하세요</small>
<small class="valid-feedback">OK</small>
</div>
<div class="mb-3">
<label class="form-label">check-limit</label>
<div class="form-control d-flex justify-content-start align-items-center" data-validation="check-limit" data-validation-limit="2-4">
<div class="form-check-inline d-flex justify-content-start align-items-center">
<input class="form-check-input" type="checkbox" value="" id="ck1">
<label class="form-check-label small" for="ck1">
Check 1
</label>
</div>
<div class="form-check-inline d-flex justify-content-start align-items-center">
<input class="form-check-input" type="checkbox" value="" id="ck2">
<label class="form-check-label small" for="ck2">
Check 2
</label>
</div>
<div class="form-check-inline d-flex justify-content-start align-items-center">
<input class="form-check-input" type="checkbox" value="" id="ck3">
<label class="form-check-label small" for="ck3">
Check 3
</label>
</div>
<div class="form-check-inline d-flex justify-content-start align-items-center">
<input class="form-check-input" type="checkbox" value="" id="ck4">
<label class="form-check-label small" for="ck4">
Check 4
</label>
</div>
<div class="form-check-inline d-flex justify-content-start align-items-center">
<input class="form-check-input" type="checkbox" value="" id="ck5">
<label class="form-check-label small" for="ck5">
Check 5
</label>
</div>
</div>
<small class="invalid-feedback">2-4개 까지 선택 가능 합니다.</small>
<small class="valid-feedback">OK</small>
</div>
</form>