저는 js에서 날짜, 숫자, String 포멧팅 도구 이런걸 씁니다. 여러분은?

JavaScript 각종 포멧팅을 위해 어떤 것을 쓰시나요? 제가 쓰는 것들을 정리해 봅니다. 괜찮은 것 알고 계시다면 답변달아주세요. 추천 환영~

문자 : String.format

Titanium에 기본적으로 String.format 이 포함되어 있습니다. 이는 IEEE printf스펙을 따르기에 printf에 익숙하신 분은 쉽게 사용 가능합니다. 그런데 이 함수를 잘못써서 에러가 날경우 로그도 없이 앱이 죽는 이상한 경험도 한적이 있고 기능이 조금 아쉬울때가 있어서 요즘은 잘 안씁니다.

var forename = 'Paul';
var number = 21;
var message = String.format('Welcome, %s! You are visitor number %d', forename, number);
Ti.API.info(message);

문자 : sf (npm)

node용 포멧팅 라이브러리 검색하다가 가장 많은 다운로드수를 자랑하는 이놈을 쓰기 시작했는데 기능이 좀 다양해서 좋은것 같아요. 요즘은 이걸 쓰고 있습니다.

var sf = require("sf");
 
sf("{who} has a {what}", { who: 'dog', what: 'tail' });
// returns: dog has a tail 
 
sf("{0} has a {1}", 'dog', 'tail');
// returns: dog has a tail 
 
sf("{0:#,##0.00}", 2123.1);
// returns: 2,123.10 
 
sf("{0,15:#,##0.00}", 2123.1);
// returns:        2,123.10 
 
sf("{a.b}", { a: { b: 'test' }});
// returns: test 
 
sf("{a.z.c}", { a: { b: 'test' }});

날짜 : moment.js

날짜는 moment.js만한게 없는것 같아요. alloy에 내장된 버전은 좀 예전버전입니다. 이걸 쓰기도 하고 가끔 최신 moment.js를 따로 축가해서 쓰기도 합니다. 날짜간 비교 계산 변경 등이 쉽고 포멧팅또한 쉽고 다국어도 지원합니다.

moment().format("MMM Do YY");               // Mar 2nd 15
moment().format('YYYY [escaped] YYYY');    
moment("20111031", "YYYYMMDD").fromNow(); // 3 years ago
moment().subtract(3, 'days').calendar();  // Last Friday at 11:40 AM

숫자 : numeral.js

숫자 포메팅 계의 moment.js 같은 놈인 것 같아요. 다국어 지원하고 포멧팅 편리하고.

var string = numeral(1000).format('0,0');
// '1,000'
2개의 좋아요

지금까지는 http://docs.appcelerator.com/titanium/latest/#!/api/Global.String에서 나오는 것 말고는 실제 이용할만한 프로젝트를 한적이 없어서…
참고하고 유용하게 쓰겠습니다^^