JAVASCRIPT/JSTL

[JavaScript] 숫자 체크 로직

#자바스크립트 #숫자검사함수 #리턴값체크 #날짜검사함수 #대충가져다쓰면되 #숫자체크로직 #날짜체크 #아스키코드표 #숫자아스키코드

안녕하세요, 배곧동개발자 입니다.

웹페이지를 만들다보면 여러가지 입력을 받게되고, 그 입력값들에 제약을 걸어야되는 상황들이 생겨요. 예를들면 날짜라던가 우편번호라던가는 무조건 숫자여야지요?

이럴 때 사용하는 javascript 로직이에요.

자바스크립트 이벤트 중 blur에 넣거나 commit 전, vaildation check할때 넣어주세요.

// 숫자 검사 로직
function checkIntVal(val){
 var tempStr = val;
 var tempStr2 = "";
 for(var i=0; i<tempStr.length; i++){
  tempStr2 = tempStr.charCodeAt(i);
                // 숫자 또는 . 까지는 허용 (.허용 안할 시 아래 44번은 없애면 됨)
  if(!((tempStr2 >=48 && tempStr2 <= 57) || tempStr2 == 44)){
   return false;
  }
 }
 return true;
}

원리는 뭐 간단히 아스키코드를 이용하는거구요. 문자열 하나씩 체크하면서 숫자가 아닌것 찾아내는거에요.

저는 blur 이벤트에 넣어서 그때그때 검사하도록 만들었기에 소스를 조금 수정해서 만들어봤어요. 참고하시면 좋을꺼에요.

function chkIntVal(obj){ 
 var tempStr = obj.value;
 var tempStr2 = "";
 for(var i=0; i<tempStr.length; i++){
  tempStr2 = tempStr.charCodeAt(i);
  if(!((tempStr2 >=48 && tempStr2 <= 57) || tempStr2 == 44)){
   alert("숫자만 입력해주시기 바랍니다.");
   obj.focus();
  }else if(tempStr.length < 5){
   alert("올바른 우편번호를 입력해주시기 바랍니다.");
   obj.focus();
  }
 }
}

추가로 밑에는 아스키코드 표까지 넣어봐요.

참고하셔서 조건문 조금씩 변경해 필요한 함수 만들어 쓰시면 될거에요.

이만, 배곧동개발자 였습니다.

배곧동개발자

Recent Posts

[MSSQL] 넓은 영어, 띄어쓰기 영어 입력되는 현상 (전각입력/문자폭)

#MSSQL #문자폭 #영어넓이 #쿼리입력안됨 1. MSSQL 영어 입력 안되는 현상 MSSQL을 주로 쓰고 있는데 MSSMS에서…

1개월 ago

[이미르] 다니아믹 키 확실한 해결방법 (커스텀토큰/접속불가)

#레전드오브이미르 #다이나믹키가다릅니다 #커스텀토큰 #접속불가 #오류 #해결방법 1. 다이나믹 키 더럽다! 유저의 다이나믹키가 다릅니다. 위메이드의 레전드…

1개월 ago

[이미르] 대기열 왜 이렇게 길어졌나? (중국작업장/매크로)

#레전드오브이미르 #작업장 #쌀먹 #중국 #매크로 #대기열 1. 운영 문제 있네? 이제 오픈 2주차에 들어온 위메이드의…

2개월 ago

[이미르] 엠틱을 챙겨보자 (스토리덱/마나회복력)

#레전드오브이미르 #엠틱 #마나회복력 #스토리덱 1. 마나가 너무 부족해! 레전드 오브 이미르는 스킬 위주의 액션 게임이라고…

2개월 ago

[이미르] 시구르드와 대화 (위치/메인퀘스트19-19)

#레전드오브이미르 #파괴가남긴것 #시구르드 #19-19 #위치 1. 파괴가 남긴 것 레전드 오브 이미르 메인퀘스트 19-19인 "파괴가…

2개월 ago

[이미르] 트롤의 비밀상자, 트롤의 유적상층 보물상자 위치

#레전드오브이미르 #트롤의비밀상자 #트롤의유적상층 #보물상자 #위치 1. 트롤의 비밀 상자 이번에 알아 볼 의뢰게시판 의뢰는 바로…

2개월 ago