웹사이트에서 입력값을 받을 때 빠질 수 없는 게 날짜와 전화번호입니다
전화번호나 날짜 입력 시에 하이픈(-) 은 빠질 수 없는데요
오늘은 숫자만 입력받고 하이픈(-) 등 특수문자가 자동으로 입력이 되도록 입력창을 제어하는 용도로
공통 함수를 작성하려 합니다
날짜나 전화번호 입력받을 때 유용하게 사용될 거라 생각이 듭니다
자바스크립트 본문입니다
function numberOnlyInput(obj, mark, index1, index2) {
/****************************************************************************
숫자만 입력가능하게하고 원하는 위치에 마크를 추가하게 한다 [전화번호, 날짜 등]
obj = 값이 들어가야할 Element
mark = 원하는 마크
index1 = 마크가 들어가야할 첫번째 위치
index2 = 마크가 들어가야할 두번째 위치 (없다면 입력하지 않아도 됨)
****************************************************************************/
var number = obj.value.replace(/[^0-9]/g, "");
var str = "";
//console.log(index1);
//console.log(index2);
if(index1 != null && index2 == null) { // index가 1개일때
if(number.length < index1) {
str = number;
} else if(numnber.length >= index1) {
str += number.substring(0, index1-1);
str += mark;
str += number.substr(index1-1);
}
}
else if(index != null && index2 != null) { // index가 2개일때
if(number.length < index1) {
str = number;
} else if(number.length < index2) {
str += number.substring(0, index1-1);
str += mark;
str += number.substr(index1-1);
} else {
str += number.substring(0, index1-1);
str += mark;
str += number.substring(index1-1, index2-1);
str += mark;
str += number.substr(index2-1);
}
}
obj.value = str;
}
다음은 HTML 부분입니다
<input type="text" onkeyup="numberOnlyInput(this, '-', 5, 7);" maxlength = "10">
날짜 형식(YYYY-MM-DD)으로 입력 제어하기 위해 5번째, 7번째에 하이픈(-)이 들어가게 작성했습니다
아주 잘 작동되고 있습니다^^
다음은 전화번호 입력창에 입력 제어할 때에 상황입니다
<input type="text" onkeyup="numberOnlyInput(this, '-', 4, 8);" maxlength="13">
전화번호 형식(000-0000-0000)으로 입력 제어하기 위해 4번째, 8번째에 하이픈(-)이 들어가게 수정했습니다
아주 잘 작동이 됩니다~!
이 코드는 원하는 곳에 특수문자를 넣을 수 있게끔 해놔서
전화번호 , 날짜뿐 아니라 원하는 상황에 맞춰 쓸 수 있어 활용성이 높으리라 생각이 됩니다~^^
내용이 마음에 드신다면 공감(♡)을 눌러주세요.
로그인하지 않으셔도 가능합니다~ 감사합니다!