자연수 컴마처리 및 여분필드(input) 연계 > 그누보드5 팁자료실

그누보드5 팁자료실

자연수 컴마처리 및 여분필드(input) 연계 정보

자연수 컴마처리 및 여분필드(input) 연계

본문

 

자연수의 컴마처리 관련 함수를 자바스크립트로 만들어 보았습니다.

이 함수를 만든 이유는 3단위(천단위) 이외의 2단위(백단위) 나 4단위(만단위) 등도 자유롭게 하기 위함입니다.

 


<script>
function commaInt(...n) {
    comma = n[0];
    stringInt = n[1];
    stringInt = String(stringInt).replaceAll(",", "").split("");
    for (i in stringInt) stringInt[i] = i != 0 && (stringInt.length - i) % Number(comma) == 0 ? "," + stringInt[i] : stringInt[i];
    return stringInt.join("");
}
</script>

 

예를 들어

commaInt(3, 1234567);

commaInt(3, "1234567");

commaInt(3, "1,23,45,67");

는 모두 1,234,567 를 리턴합니다. 또한 여기서 앞숫자 3을 4로 바꾸면 4단위(만단위) 컴마가 찍히구요.

자연수로 만들려면 위에서 추출된 것은 모두 문자열이므로 앞숫자를 0으로 바꾼후 숫자화 해 주세요.

Number(commaInt(0, "1,234,567"))

결과 숫자 1234567

 

예제는 2개인데 https://wittazzurri.com/editor/html_editor.php 에서 확인해보세요.

먼저 버튼처리하는 경우입니다.

 


<input id="wr_1" value="1234567">
<br>
<input id="wr_2" value="2345678">
<br>
<input id="wr_3" value="3456789">
<br>
<input id="wr_4">
<br>
<button id="wr_btn" type="button" style="cursor:pointer">클릭</button>
 
<script>
function commaInt(...n) {
    comma = n[0];
    stringInt = n[1];
    stringInt = String(stringInt).replaceAll(",", "").split("");
    for (i in stringInt) stringInt[i] = i != 0 && (stringInt.length - i) % Number(comma) == 0 ? "," + stringInt[i] : stringInt[i];
    return stringInt.join("");
}

wr_1.value = commaInt(3, wr_1.value);
wr_2.value = commaInt(3, wr_2.value);
wr_3.value = commaInt(3, wr_3.value);

function commaResult() {
    wr_4.value = Number(commaInt(0, wr_1.value)) + Number(commaInt(0, wr_2.value)) + Number(commaInt(0, wr_3.value));
    wr_4.value = commaInt(3, wr_4.value);
}

wr_btn.onclick = commaResult;
</script> 

 

다음은 웹로딩시 바로 나타나는 경우입니다.

 


<input id="wr_1" value="1234567">
<br>
<input id="wr_2" value="2345678">
<br>
<input id="wr_3" value="3456789">
<br>
<input id="wr_4">
 
<script>
function commaInt(...n) {
    comma = n[0];
    stringInt = n[1];
    stringInt = String(stringInt).replaceAll(",", "").split("");
    for (i in stringInt) stringInt[i] = i != 0 && (stringInt.length - i) % Number(comma) == 0 ? "," + stringInt[i] : stringInt[i];
    return stringInt.join("");
}

wr_1.value = commaInt(3, wr_1.value);
wr_2.value = commaInt(3, wr_2.value);
wr_3.value = commaInt(3, wr_3.value);

function commaResult() {
    wr_4.value = Number(commaInt(0, wr_1.value)) + Number(commaInt(0, wr_2.value)) + Number(commaInt(0, wr_3.value));
    wr_4.value = commaInt(3, wr_4.value);
}

commaResult();
</script> 

 

여분필드로 날릴 때는 여분필드 입력시 숫자와 컴마 이외에는 입력하지 못하도록

input 에 onkeyup 이벤트 등을 다듬어 주거나 type를 아예 number 로 주세요.^^

추천
7

댓글 10개

전체 2,432 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT