킥복싱의 각종 자료실
유효성 검사 스크립트 본문
SMALL
지금처럼 AI시대에 살기전에는 프로그래밍이 너무나도 어려웠고,
날마다 날마다 벽에 머리박아가면서, 책도 보고, 구글링도 하면서 안되는걸 되게 하려고 엄청 고생했었지만,
이제는 그런시대는 지나갔고,
내가 가지고 있는 나의 프로그래밍 실력이나 재산도 이젠 초급도 할수있는 수준이 되었다.
너무나 속상하지만,
어쩔수있나, 대신에 프롬프터로써 성장하여야 이제 뒤치지 않을것이므로, 최대한 키워드를 잘 잡아서 AI를 부려먹는 사람이 되어야하겠다.
아래는 소스코드.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>주민등록번호 및 전화번호 유효성 검사</title>
<style>
body {font-family:Arial, sans-serif; margin:20px;}
.container {max-width:600px; margin:auto;}
.input-group {margin-bottom:15px;}
label {display:block; margin-bottom:5px; }
input[type="text"] {padding:8px; width:100%; max-width:300px;}
button {padding:8px 16px; cursor:pointer;}
.result {margin-top:10px; font-weight:bold;}
</style>
</head>
<body>
<div class="container">
<h2>주민등록번호 및 전화번호 유효성 검사</h2>
<div class="input-group">
<label for="jumin">주민등록번호 (예: 123456-1234567)</label>
<input type="text" id="jumin" placeholder="123456-1234567" maxlength="14">
<button onclick="checkJumin()">검사</button>
<div id="juminResult" class="result"></div>
</div>
<div class="input-group">
<label for="phone">전화번호 (예: 010-1234-5678 또는 02-123-4567)</label>
<input type="text" id="phone" placeholder="010-1234-5678" maxlength="13">
<button onclick="checkPhone()">검사</button>
<div id="phoneResult" class="result"></div>
</div>
</div>
<script>
'use strict';
$(document).ready(function() {
// 주민등록번호 입력 시 자동 하이픈 추가
$('#jumin').on('input', function() {
let value = $(this).val().replace(/[^0-9]/g, ''); // 숫자만 허용
if (value.length > 6) {
value = value.slice(0, 6) + '-' + value.slice(6, 13);
}
$(this).val(value);
});
// 전화번호 입력 시 자동 하이픈 추가
$('#phone').on('input', function() {
let value = $(this).val().replace(/[^0-9]/g, ''); // 숫자만 허용
let formatted = '';
if (value.length > 3) {
formatted = value.slice(0, 3) + '-';
value = value.slice(3);
} else {
formatted = value;
value = '';
}
if (value.length > 0) {
let midLength = value.length > 4 ? 4 : 3;
if (value.length > midLength) {
formatted += value.slice(0, midLength) + '-' + value.slice(midLength, midLength + 4);
} else {
formatted += value;
}
}
$(this).val(formatted);
});
});
// 주민등록번호 유효성 검사
function checkJumin() {
const juminInput = $('#jumin').val();
const resultDiv = $('#juminResult');
// 하이픈 제거
const jumin = juminInput.replace(/-/g, '');
// 13자리 숫자인지 확인
if (!/^\d{13}$/.test(jumin)) {
resultDiv.html('주민등록번호는 13자리 숫자여야 합니다.');
return;
}
// 가중치 배열
const weights = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5];
let sum = 0;
// 각 자리수에 가중치 곱해서 합산
for (let i = 0; i < 12; i++) {
sum += parseInt(jumin[i]) * weights[i];
}
// 유효성 검사 공식: (11 - (합 % 11)) % 10
let checkDigit = (11 - (sum % 11)) % 10;
let lastDigit = parseInt(jumin[12]);
if (checkDigit === lastDigit) {
resultDiv.html('유효한 주민등록번호입니다.');
} else {
resultDiv.html('유효하지 않은 주민등록번호입니다.');
}
}
// 전화번호 유효성 검사
function checkPhone() {
const phoneInput = $('#phone').val();
const resultDiv = $('#phoneResult');
// 전화번호 형식 정규식
// 휴대폰: 010-XXXX-XXXX
// 일반 전화: 0XX-XXX-XXXX 또는 0XX-XXXX-XXXX
const phoneRegex = /^(010-\d{4}-\d{4}|0\d{1,2}-\d{3,4}-\d{4})$/;
if (phoneRegex.test(phoneInput)) {
resultDiv.html('유효한 전화번호입니다.');
} else {
resultDiv.html('유효하지 않은 전화번호입니다. (예: 010-1234-5678 또는 02-123-4567)');
}
}
</script>
</body>
</html>
참고하세요.
LIST
'퍼블리싱 > JavaScript' 카테고리의 다른 글
event.target 프로퍼티 (0) | 2020.03.04 |
---|
Comments