본문 바로가기

[Javascript] String byte check. 스트링 바이트 체크 (한글). 자바스크립트에서 스트링 길이를 구할 때, 한글 길이와 영문길이를 같이 계산하는 경우가 대부분이다. 하지만, 한글의 경우 2byte로 계산해야 정상적인 계산이라고 볼 수 있는데, 구글링 중 어느 블로그를 통해 계산법에 대해 알게 되었다. 현재 string의 byte 수를 구하는 function 이다. String.prototype.getBytes = function() { var contents = this; var str_character; var int_char_count; var int_contents_length; int_char_count = 0; int_contents_length = contents.length; for (k = 0; k < int_contents_length; k++) { s.. 더보기
[Javascript] 자바스크립트에서 replaceAll 하기. 자바에서는 친절하게 replaceAll을 제공하지만 자바스크립트는 제공하지 않는다. 결국 해당 function을 만들어주는 수 밖에 없다.. 마찬가지로 웹페이지 로드될 때, 아래코드를 추가시켜주면된다. String.prototype.replaceAll = function() { var a = arguments, length = a.length; if ( length == 0 ) { return this; } var regExp = new RegExp( a[0], "g"); if ( length == 1 ) { return this.replace(regExp, ""); } else { return this.replace(regExp, a[1]); } return this; } 더보기
[Javacript] Array remove Index 배열 삭제 자바스크립트의 Array 객체 ( [] 대괄호를 통해 생성 또는 new Array 로 생성하는 경우) 에는 배열 객체를 삭제하거나, 인덱스를 입력받아 삭제하는 function이 없다. 물론 splice나 split 등의 function을 이용하면 되긴 하지만, 익숙하지 않은 사람들에게는 상당히 귀찮은 작업이다. 그래서 function을 미리 만들어 놓고 사용하는데, 이것도 마찬가지로 웹페이지가 로드될 때 코드를 추가해주면 모든 Array가 아래 function들을 가지게 된다. Array.prototype.remove = function() { var what, a = arguments, L = a.length, ax; while (L && this.length) { what = a[--L]; while.. 더보기
[Javascript] Date format 추가. 자바스크립트에서 Date 객체에 대한 format function을 지원해 주지 않는다. 해서..... 포멧을 만들려면 상당히 귀찮은 작업을 해야하는데, 아래 코드를 웹페이지 로드될 때, 추가해주면 format function 을 사용할 수 있다. Date.prototype.format = function(f) { if (!this.valueOf()) return " "; var weekName = ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"]; var d = this; return f.replace(/(yyyy|yy|MM|dd|E|HH|hh|mm|SSS|ss|a\/p)/g, function($1) { switch ($1) { case "yyyy": return.. 더보기
[Android, Hybrid] 앱에서 파일 다운로드 구현. URL File Download. 웹브라우저를 이용해서 파일을 다운로드 받을 경우, 다운로드매니저를 통해 받게 된다.(진저브레드 이상) 앱에서 다운로드 매니저를 사용하여 파일 다운로드 받는 방법을 쓰고자 한다. 앱이나 하이브리드나 다운로드 하는 방법은 동일하다. 다운로드 매소드, 그리고 다운로드매니저로부터 액션을 받을 수 있는 리시버를 만드면 끝.! Download Method private DownloadManager mDownloadManager; //다운로드 매니저. private int mDownloadQueueId; //다운로드 큐 아이디.. private String mFileName ; //파일다운로드 완료후...파일을 열기 위해 저장된 위치를 입력해둔다. /** * @param url : 파일을 다운로드할 url. */ p.. 더보기
[Chrome] 크롬 강력한 새로 고침 단축키. 클리어 캐시 작업 중에 CSS나 html을 수정하였을 경우, 캐시로 인해 새로고침이 정상적으로 이루어 지지 않을 때가 많다. 매번 설정에 들어가서 캐시를 지워야 했지만 크롬에는 강력한 새로고침이라는 기능이 있다.(옛날 버전에는 안될 수도 있으니,, 최신버전으로..) 마우스 우측버튼 클릭, 개발자 콘솔(또는 검사)를 열고, 새로고침을 롱클릭하게 되면 하위메뉴들이 나오는데, 그중 "강력한 새로고침"과, "캐시비우기 및 강력 새로고침"이라는 선택창이 있다. (윈도우 버전에서만 보인다) 맥 버전에도 추가 됬음! 이중 하나를 선택하면 화면이 리로드 되고, 이미지나 css에서 304 값을 받는 경우는 없을 것이다. 단축키로 사용하고 싶으면 ctrl + shift + r 을 눌리게 되면 강력한 새로고침이 동작한다. 맥에서는 롱클.. 더보기
[Android] 안드로이드 TextView 글자에 색깔 넣기. 부분적으로 색깔 넣기. html 스타일 적용. Spannable 객체를 이용할 경우. 24와 37은 인덱스 값. 24~37 사이에 있는 글자만 변경된다. Spannable descriptionString = (Spannable) mDescriptionTextView.getText(); descriptionString.setSpan(new StyleSpan(Typeface.BOLD), 24, 37, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE); descriptionString.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.guide_message_highlight)), 24, 37, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE.. 더보기
[Android] TextView, 글자에 외곽선(Border, outline) 넣기 안드로이드에서 외곽선을 넣기 위해선 TextView를 Customizing해야한다.(다른방법이 있을 수도..;) TextView를 상속받아서 뷰를 조금 수정해야하고, 편하게 사용하기 위해 attr을 선언해주면 된다. 먼저 TextView를 상속 받은 OutlineTextView를 만든다. public class OutlineTextView extends TextView { private boolean hasStroke = false; private float mStrokeWidth = 0.0f; private int mStrokeColor; public OutlineTextView(Context context) { super(context); } public OutlineTextView(Context c.. 더보기
[Android] 안드로이드에서 httpPost multiparts로 전송하기(멀티파트, 멀티파츠) 안드로이드에서는 httpClient의 버전이 낮아 multiparts를 지원하지 않는다. 보내고 싶다면 httpConnection을 열고, buffer를 통해서 전송해야 하는데, 만들기가 여간 귀찮은 것이 아니다. apache에서 httpComponents를 제공하고 있는데, 해당 라이브러리를 사용하면, 별다른 구현을 하지 않더라도 multiparts로 전송할 수 있게 된다. 물론 약 1메가 정도의...라이브러리가 추가되긴 하지만.. 아파치 사이트로 이동하여 httpClient 최신버전을 다운받는다.(전 4.3.X 버전 사용중) Download Page(Click) 당연히 jar 파일이 필요하기 때문에 binary를 클릭해서 받아준다. 다운후 압축을 해제하게 되면, examples, lib, tutori.. 더보기
[Android, Hybrid]openFileChooser 킷캣에서 동작하지 않는 문제( openFileChooser Kitkat bug ) [2014.10.31] openFileChooser가 문제군요...ㅎ 코멘트 잘 읽어 보았습니다. 킷캣에서 파일업로드 버그는...웹적인 요소로 해결할 수 있는 방안은 없습니다. 그래서 이런방법도 있다는 것을 알려드리기 위해서 글을 쓴건데 더욱 혼란스럽게 해드린 것 같네요. 제가 아래 글에 빨간색으로 표시를 해뒀는데...이 방법은 파일에 대한 정보를 네이티브 단에 저장해 놓고 전송에 대한 이벤트를 받으면 NATIVE 단에서 서버로 전송하게 됩니다. 서버로 전송하는 부분은 각자 프로젝트에 맞게...직접 구현하셔야되구요. 멀티파츠로 전송하신다면 제 블로그 찾아보시면 네이티브에서 멀티파츠로 전송하는 방법이라고 있습니다. 그부분 참고하시면 됩니다. 아래 발췌된 부분은 참고용이지 복사 붙여넣기를 한다고해서 동작하는.. 더보기