본문 바로가기
Project/IMFIND

[프로젝트] 게시판 등록 - input box 숫자 체크

by hongchii 2020. 12. 29.
728x90
반응형

 

12/28

 

사례금 직접 입력시에 숫자만 입력받아야 하기 때문에 숫자가 아닌 문자는 입력되지 않게했다.

열심히 검색해서 이 방법 저 방법 다 써봤는데 이 방법이 제일 간단했다...  후..!!

 

input box에 숫자만 입력받기

 <input type="text" class="form-control" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');" pattern='\d*' placeholder="직접입력" disabled>

 

 

또, 아무래도 금액을 입력하는 칸이라서 천단위로 ,를 생기게 해주고 싶었다. (1,000 / 100,000 / 1,000,000)

 

 

 

입력받은 값에 콤마 생성하기

function cmaComma(obj) {
	    var firstNum = obj.value.substring(0,1); // 첫글자 확인 변수
	    var strNum = /^[/,/,0,1,2,3,4,5,6,7,8,9,/]/; // 숫자와 , 만 가능
	    var str = "" + obj.value.replace(/,/gi,''); // 콤마 제거  
	    var regx = new RegExp(/(-?\d+)(\d{3})/);  
	    var bExists = str.indexOf(".",0);  
	    var strArr = str.split('.');  
	 
	    if (!strNum.test(obj.value)) {
	        alert("숫자만 입력하십시오.\n\n특수문자와 한글/영문은 사용할수 없습니다.");
	        obj.value = 1;
	        obj.focus();
	        return false;
	    }
	 
	    if ((firstNum < "0" || "9" < firstNum)){
	        alert("숫자만 입력하십시오.");
	        obj.value = 1;
	        obj.focus();
	        return false;
	    }
	 
	    while(regx.test(strArr[0])){  
	        strArr[0] = strArr[0].replace(regx,"$1,$2");  
	    }  
	    if (bExists > -1)  {
	        obj.value = strArr[0] + "." + strArr[1];  
	    } else  {
	        obj.value = strArr[0]; 
	    }
	}
	 
	function commaSplit(n) {// 콤마 나누는 부분
	    var txtNumber = '' + n;
	    var rxSplit = new RegExp('([0-9])([0-9][0-9][0-9][,.])');
	    var arrNumber = txtNumber.split('.');
	    arrNumber[0] += '.';
	    do {
	        arrNumber[0] = arrNumber[0].replace(rxSplit, '$1,$2');
	    }
	    while (rxSplit.test(arrNumber[0]));
	    if(arrNumber.length > 1) {
	        return arrNumber.join('');
	    } else {
	        return arrNumber[0].split('.')[0];
	    }
	}

 

<input type="text" size="10" class="form-control" 
             name="cma_test" onkeyup="cmaComma(this);" onchange="cmaComma(this);" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');" 
             pattern='\d*' placeholder="직접입력" disabled>원

 

 

 

입력과 동시에 콤마가 생성된다!! 

 

 

 

728x90
반응형

댓글