input 천단위 콤마 적용 후 db 보낼때 콤마 삭제 처리 방법 문의
CMS/프레임워크 | Rhymix 2.1 |
---|---|
개발 언어 | PHP 7.4 |
https://blog.naver.com/till-its-over/223086039970
블로그에
<script> // ▼ (1) 입력제한 : 숫자만 입력 [키보드 입력 이벤트 ] $(document).on('keyup' , ".trgetAmount" , function(event){ if(event.keyCode == 16 || event.keyCode == 35 || event.keyCode == 36 || event.keyCode == 46){ return false; } if (!(event.keyCode >=37 && event.keyCode<=40)) { var inputVal = $(this).val(); $(this).val(inputVal.replace(/[^0-9]/gi,'')); } }); // ▼ (2) 포맷변경 : 입력한 값을 반점 형태로 변경 [입력칸 이외 다른 곳을 클릭하는 경우] $(document).on('blur' , ".trgetAmount" , function(){ // (1) 공백이나 값이 0인경우 다시 0으로 초기화 if($(this).val().trim() == "" || $(this).val().trim() == "0"){ $(this).val("0"); } // (2) 좌측 0 을 제거한 후 천단위 콤마를 추가 후 값을 변경함 else { onlyN = $(this).val().replace(/(^0+)/, ""); // 좌측0제거 commaN = onlyN.replace(/\B(?=(\d{3})+(?!\d))/g, ','); // 천단위콤마추가 $(this).val(commaN); } }); </script>
자바스크립트 이벤트 생성해서 적용시켜서 천단위 콤마, 숫자만 입력 , 맨 앞에 0 불가
잘 사용하고 있는데요.
db로 보낼대는 천단위 콤마 쉼표를 제거해야하는데
여러 방법을 동원해도
db로 넘어가면 예 : 3,000 쉼표 맨 왼쪽 3만 저장이 됩니다.
어떤식을 추가해야 할까요 ㅠ_ㅠ
댓글 2
$str = "3,000";
$num = preg_replace("/[^0-9]*/s", "", $str);
질문글의 경우 사용자 브라우저에서 변환하는 방법을 말씀하시는것 같은데 form 을 submit 하기전에 숫자로 추출을 해주시면 됩니다.
실제 적용한 URL을 모르니 onsubmit 처리를 어떻게 하셨는지 모르겠지만 아래 간단하게 아래 소스를 참고해주세요.
var str = "3,000";
var num = str.replace(/[^0-9]/g,'');
input 을 두개 만드는 편법도 있죠
실제 XE용 변수로 전달될 숫자값용 hidden input
그리고 콤마가 찍히는 유저가 기재하는 출력용 text input
출력용 text input 에 작성될때마다 script 를 통해 hidden input 에 콤마가 없는 숫자만 입력되게 하면 됩니다