텍스트박스 천단위 콤마 찍기(이벤트 응용)
천단위 콤마 + 수정시 다시 콤마 찍기 + 더블클릭시 0으로 초기화 + 붙여넣기시 숫자외 방지(클립보드 변경) + 공백일경우 0 삽입 + 입력가능 수 백만단위 제한.
<%--
/************************************************************/
/* 숫자만 입력해주는 스크립트 */
/************************************************************/
--%>
function getOnlyNumberKey() {
if ((event.keyCode >=48 && event.keyCode <=57) // 자판 0~9
|| (event.keyCode == 8) // back space
)
{
event.returnValue = true;
} else {
event.returnValue = false;
}
}
<%--
/************************************************************/
/* 숫자가 0일경우 공백으로 리턴 */
/************************************************************/
--%>
function zeroNullChange(num) {
var retNum;
if(num==0){
retNum = "";
}else{
retNum = num;
}
return retNum;
}
<%--
/************************************************************/
/* 천단위 콤마찍기 */
/************************************************************/
--%>
function num_format(n) {
var pre_reg = /[^0-9]/gi;
n = String(n);
n = n.replace(pre_reg, '');
var reg = /(^[+-]?\d+)(\d{3})/; // 정규식
n = String(n); // 숫자를 문자열로 변환
while (reg.test(n))
n = n.replace(reg, '$1' + ',' + '$2');
return n;
}
<%--
/************************************************************/
/* 천단위 콤마제거 */
/************************************************************/
--%>
function del_Comma(n) {
var pre_reg = /[^0-9]/gi;
n = String(n);
n = n.replace(pre_reg, '');
return n;
}
<%--
/************************************************************/
/* 숫자외 문자 걸러내고 클립보드 데이터 변경 */
/************************************************************/
--%>
function notNumberFormatReplace(str){
var reg = /[^0-9]/gi;
var clipData = window.clipboardData.getData("Text"); //클립보드 데이터 가져오기
clipData = String(clipData);
if(window.event.ctrlKey && window.event.keyCode == 86) {
clipData = clipData.replace(reg, '');
window.clipboardData.setData('Text',clipData);
return clipData;
}else{
return str;
}
}
사용법
onkeypress="this.value=del_Comma(this.value);getOnlyNumberKey();if(this.value==0){this.value='';}"
onKeyUp="if(this.value==''){this.value='0'}else{this.value=num_format(this.value);}"
onkeydown="this.value=notNumberFormatReplace(this.value);"
onblur="this.value=num_format(this.value); if(this.value=='') this.value='0';"
onFocus="this.value=zeroNullChange(this.value);"
ondblclick="if(this.value!=0){this.value='';}"
style="text-align:right;ime-mode:disabled;width:100%;color:#0678F9;border:1px solid #C0C0C0;padding:0px 0;height:18px;line-height:18px;">