개발팁2016. 8. 25. 10:51

안드로이드 앱을 만들어보신분이라면 토스트 메세지가 어떤건지 바로 이해하실것이다.
순서대로 올라와서, 자동으로 사라지는 메세지 박스이다.

구조가 간단해서 직접 만들어보셔도 좋을것이다.
아래 링크에서 기존에 만들어진 jquery 플러그인을 다운받아보자.

 

https://github.com/Soldier-B/jquery.toast

 

 

html 파일에 css 와 js 파일을 넣고, 토스트메세지를 호출하면 된다.

 

<link rel="stylesheet" type="text/css" href="jquery.toast.min.css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.toast.min.js"></script> 

 

 

$.toast('메세지', 옵션);

 

메세지는 html 코드로, 문자열에 html 태그를 포함할 수도 있다.
옵션은 json 방식으로 넣어주면된다.
json 은 javascript object notation 으로, { } 로 둘러싸인 객체 표현법이다.


 

$.toast('일반 메세지입니다.');

기본 메세지에, 기존옵션을 사용하여, 5초후에 사라진다.

 

$.toast('<h4>위험</h4> 이것은 위험 메세지입니다.', { type: 'danger', duration : 2000 } );

경고 메세지로, duration 값을 2000 으로 주었기 때문에, 2초후에 사라진다.

 

$.toast('<h4>정보</h4> 이것은 정보 메세지입니다.', { type: 'info', sticky : true } );

정보 메세지이고, sticky 에 true라고 주었기 때문에, x 버튼을 눌러 닫기 전까지는 계속 표시된다.

 

$.toast('<h4>성공</h4> 이것은 성공 메세지입니다.', { type: 'success', duration: 3000 } );

성공 메세지이고, 3초후에 자동으로 사라진다.

 

그외에도 toast 의 config 를 설정할 수 도 있다.

이 config 값은 최초에 1회만 설정하면, 이후 toast 메세지는 모두 설정값에 따라 나타난다.

 

기존으로 toast 메세지는 화면의 center 에 나오며, 메세지박스 사지는 500 이다.

 

$.toast.config.align = 'right';
$.toast.config.width = 300;

 

 

 

 

Posted by 헝개
개발팁2016. 8. 16. 10:02

숫자를 한글로 표시하는 방법이다.

은행사이트에서 이체 할때 보면, 숫자로 입력하면, 그 옆에 한글로 표시되는걸 봤을것이다.

 

123,000 => 일십이만삼천 원

 

예제는 자바스크립트 코드로 작성하였지만, 소스가 단순해서, 사용하는 언어로 포팅하여 사용하면 된다.

 

우선, 0 ~ 9 까지의 숫자를 한글로 정의해보자.

 

var arrNumberWord = new Array("","일","이","삼","사","오","육","칠","팔","구");


 

0은 블랭크로 두고, 각각의 숫자에 대해서, 배열로 정의하면, 배열인덱스로 바로 한글명으로 치환이 가능하다.

 

arrNumberWord[9] => 구

arrNumberWord[5] => 오

 

그다음, 4자리마다 끊어지는, 단위를 만들어보자.

영어에서는 3자리로 끊어지기 때문에, 콤마위치가 3자리에 와서, 한눈에 숫자를 파악하기 편한데,

우리나라는 4자리마다 끊어지는데, 콤마위치를 3자리에 뒤서, 영~ 좋지 않다.

 

var arrDigitWord = new  Array("","십","백","천");

 

1, 10, 100, 1000

1의자리는 치환이 없고, 각각, 십, 백, 천 이 된다.

7000 => 위의 arrNumberWord 배열로 칠로 바꾸고, 뒤에 000 => 길이가 3이기 때문에, 배열 인덱스 3으로 가져오면, 천으로 바뀌어, 칠천 이 된다.

 

이렇게, 각 자리수를 4로 나눈 나머지 를 처리하면된다.

 

 

마지막으로는, 4자리마다 세는 단위를 넣어보자.

만, 억, 조 가 해당된다.

10,000 => 만, 100,000,000 => 억

 

var arrManWord = new  Array("","만","억", "조");

 

이 arrManWord 는 자리수를 4로 나눈 몫으로 처리하면 된다.

10,000 의 경우 1을 제외하고, 0000 자리수가 4개이기 때문에, 4로 나누면 1이 나오고, 나머지가 0 인경우,

arrManWord[4로 나눈 정수값] = 억 이 된다.

 

 

<html>
<head>
<script>

      // 1 ~ 9 한글 표시
      var arrNumberWord = new Array("","일","이","삼","사","오","육","칠","팔","구");
      // 10, 100, 100 자리수 한글 표시
      var arrDigitWord = new  Array("","십","백","천");
      // 만단위 한글 표시
      var arrManWord = new  Array("","만","억", "조");



      // Copyright 헝그리개발자(https://bemeal2.tistory.com)
      // 소스는 자유롭게 사용가능합니다. Copyright 는 삭제하지 마세요.
      function fn_change_hangul_money(txt_id)
      {
            var num_value = txt_id.value;
            var num_length = num_value.length;



            if(isNaN(num_value) == true)
                  return;



            var han_value = "";
            var man_count = 0;      // 만단위 0이 아닌 금액 카운트.



            for(i=0; i < num_value.length; i++)
            {
                  // 1단위의 문자로 표시.. (0은 제외)
                  var strTextWord = arrNumberWord[num_value.charAt(i)];



                  // 0이 아닌경우만, 십/백/천 표시
                  if(strTextWord != "")
                  {
                        man_count++;
                        strTextWord += arrDigitWord[(num_length - (i+1)) % 4];
                  }



                  // 만단위마다 표시 (0인경우에도 만단위는 표시한다)
                  if(man_count != 0 && (num_length - (i+1)) % 4 == 0)
                  {
                        man_count = 0;
                        strTextWord = strTextWord + arrManWord[(num_length - (i+1)) / 4];
                  }



                  han_value += strTextWord;
            }

            if(num_value != 0)
                  han_value = "금 " + han_value + " 원";



            document.all.han_money.innerText = han_value;
      }


</script>
</head>

<body>
<form>
<span class="han_money" id="han_money">금액표시</span>
<br>
<input type="text" id="txt_money" maxlength="12" onkeyup="fn_change_hangul_money(this);">

</form>

</body>

</html>

 

 

간단하게 구현해본 자바스크립트 소스이다.

textbox 에 입력된 숫자를 받아서, 한글로 표시해준다.

 

 

 

Posted by 헝개