C# 언어에서는 string.Format 또는 String.Format 이 굉장히 유용하게 문자열을 생성하는 메서드인데,
자바스크립트에서는 이런 기능이 없어 아쉽다.
String.Format("{0}, {1}!", "Hello", "World");
=> Hello, World!
자바스크립트에서는 문자열 객체가 String 이므로, String 객체안에다 만들것이고,
자바스크립트가 일반적으로 카멜 케이스 (Camel Case) 를 사용하므로, 소문자 f 로 시작하는 format 이라는 함수를 만들 것이다.
C# 언어의 Format 의 기능은 다양하고 상당히 많지만, 여기서는 단순위 replace 만 할것이다.
C# 의 String.Format 의 기능이 궁금하다면 아래 링크에서 확인할 수 있다.
https://docs.microsoft.com/ko-kr/dotnet/api/system.string.format
여기서는 단순히 {0}, {1}, ... {n} 으로만 치환할 것이다.
String.format = function() {
let args = arguments;
return args[0].replace(/{(\d+)}/g, function(match, num) {
num = Number(num) + 1;
return typeof(args[num]) != undefined ? args[num] : match;
});
}
파라미터 갯수가 정해지 있지 않기 때문에, 함수 구문 ( function() ) 에 파라미터명은 넣지 않았다.
첫번째 파라미터는 문자열로 { 문자와 숫자(정규식의 \d) } 을 만나면, 뒤의 n+1 번째 파라미터로 replace 하게 된다.
"Hello" + ", " + "World" + "!";
=> Hello, World!
String.format("{0}, {1}!", "Hello", "World");
=> Hello, World!
그외에도 변수를 이용해서 치환이 가능하기 때문에, 사용도 편하고, 가독성도 훨씬 좋을것이다.
'개발팁' 카테고리의 다른 글
자바스크립트 배열 자료구조 다루기 (0) | 2020.07.30 |
---|---|
텔레그램으로 봇파더 BotFather 토큰 생성하기 (18) | 2020.03.20 |
자바스크립트 (vue.js) 다이나믹 고정레이어 구현하기 (0) | 2020.02.16 |
[C#] Winform / WPF ToggleButton 토글버튼 (0) | 2019.03.28 |
[C#] 파일시스템의 폴더감시 FileSystemWatcher (1) | 2019.03.19 |