Built-ins for strings
- length : 길이 반환
- boolean
- number
- string
- word_list
- 대소문자
- cap_first
- capitalize
- lower_case
- chop_linebreak
- trim
- index_of, last_index_of
- contains
- date, time, datetime
- starts_with, ends_with, ensure_starts_with, ensure_ends_with
- remove_beginning, remove_ending
- keep
- keep_after 처음 부분 문자열과 일치하는 부분까지 제거한 나머지 반환. 일치하는 부분이 없으면 빈 문자열, 부분 문자열 길이가 0이면 원본 그대로 반환
- keep_after_last 마지막으로 부분 문자열과 일치하는 부분까지 제거한 나머지 반환
- keep_before 처음 부분 문자열과 일치하는 위치 전까지 반환. 일치하는 부분이 없으면 원본 그대로, 부분 문자열 길이가 0이면 빈 문자열 반환
- keep_before_last 마지막으로 부분 문자열과 일치하는 위치 전까지 반환
- left_pad, right_pad
- esc
- j_string, js_string, json_string, url, url_path
- matches, groups
- replace
- split
- Common Flags
"true", "false" 문자열에 대해 true, false 반환
문자열을 숫자로 변환. 지수형 표기 인식. NaN, INF, -INF, Infinity, -Infinity 인식
문자열 값을 반환한다. multi-type인 경우 쓸 일이 있을지도
FreeMarker 단어 정의의 기준. 공백 문자를 제외한 문자들의 연속
첫 번째 단어의 첫번째 글자를 대문자로 변환하여 반환 ↔ uncap_first
각 단어의 첫글자만 대문자가 되도록 변환하여 반환
전부 소문자로 ↔ upper_case
마지막 line-break를 제거. 없으면 그대로 반환. \n만 없애준다... \r은 그대로 남는다...
전후의 연속적인 공백 문자를 제거한다
정규표현식은 지원하지 않는다
부분 문자열을 포함하는지 여부 반환. contains는 정규표현식 사용 불가
문자열을 date, time, date-time 값으로 변환. 매개변수 없이 호출하는 경우 기본 로캐일의 기본 포맷만 인식한다
ensure : 없으면 concat해서 반환
해당 부분 문자열로 시작/끝나지 않음을 보장한다
일치하는 부분 문자열 전/후의 나머지 문자열 반환. 정규표현식 가능
기본적으로 공백으로 채운다
output_format이 이스케이핑 대상인 동시에 auto_esc가 꺼져있는 경우, ?esc를 호출하면 이스케이프된 문자열로 반환한다. ↔ no_esc
각각 Java, JavaScript, JSON, url 문자열 표현에 맞게 이스케이프한다
url_path는 '/'를 이스케이프하지 않는다
반환 값은 multi-type
boolean : 전체 문자열이 매칭되는지 여부
sequence : 길이 0 이상의, 매칭되는 부분 문자열 시퀀스. 기대하는 바와는 다르게, 매칭되는 부분 문자열 전후의 다른 문자열이 포함될 수 있다
정규표현식 가능
정규표현식 가능. 반환된 시퀀스의 첫 번째 문자열은 빈 문자열이 되지 않는다. 정규표현식을 사용한 경우 마지막 문자열도 빈 문자열이 되지 않는다. 빈 문자열로 분리하는 경우 각 문자들이 분리된다
| Built-in | i(ignore case) | r(reg. exp.) | m(multi-line mode) | s(dot-all mode) | c(whitesp. and comments) | f(first only) |
|---|---|---|---|---|---|---|
| replace | Yes | Yes | Only with r | Only with r | Only with r | Yes |
| split | Yes | Yes | Only with r | Only with r | Only with r | No |
| matches | Yes | Ignored | Yes | Yes | Yes | No |
| keep_after | Yes | Yes | Yes | Yes | Yes | Ignored |
| keep_after_last | Yes | Yes | Yes | Yes | Yes | Ignored |
| keep_before | Yes | Yes | Yes | Yes | Yes | Ignored |
| keep_before_last | Yes | Yes | Yes | Yes | Yes | Ignored |
| ensure_starts_with | Yes | Ignored | Yes | Yes | Yes | Ignored |
Built-ins for numbers
- abs
- is_infinite, is_nan
- lower_abc, upper_abc
- round, floor, ceiling
- string
엑셀 열 표기처럼 1, 2, 3, ..., 27, ... 순서대로 a, b, c, ..., aa, ... 로 매핑한다
round : 끝자리가 5인 경우 올림한다
${x?string} : ${x}와 동일
string.currency, string.percent, string.computer
자바 숫자 문자열 포맷을 지원한다
Built-ins for date(time)
- string
Built-ins for booleans
- c
- string
- then
삼항 연산 비슷
Built-ins for sequences
- size
- first, last
- reverse
- min, max
- join
- sort
- sort_by
- seq_contains
- seq_index_of, seq_last_index_of
- chunk
min/max는 모든 요소가 숫자 | date-(time)일 때만 작동
join(separator[], empty_value[, list_ending]])
* empty_value : 시퀀스가 빈 경우 대체 문자열. 기본값 ""
* list_ending : 시퀀스가 비지 않은 경우 종결 문자열. 기본값 ""
모든 요소가 문자열 | 숫자 | date-(time) | boolean일 때만 작동
요소가 해시인 경우, 해시의 키를 지정하여 해당 값으로 sort 적용
시퀀스가 해당 요소를 포함하는지 여부. Objects#equals가 아닌 == 이용
요소의 순번. 없으면 -1
시퀀스를 고정 길이로 잘라 반환
Built-ins for hashes
- keys
- values
Built-ins for loop variable
- index
- counter
- item_cycle
- has_next, is_first, is_last, is_even_item, is_odd_item
0부터 시작하는 순서
1부터 시작하는 순서
Etc built-ins
- switch
- byte, double, float, int, long, short
- number_to_date, number_to_time, number_to_datetime
- eval
- 타입 체크
- sequence
switch directive의 인라인 버전. 모든 타입에 대해 작동한다
숫자 변수에 대한 변환값을 반환한다. date-(time) 변수에 대해서 long을 지원한다
FTL을 동적으로 실행하여 문자열로 반환. 따라서 평가될 문장의 결과가 자동으로 string으로 변환될 수 있어야 한다
is_string, is_number, is_boolean, is_date_only, is_date_like, is_time, ...
- © Donggi Kim. MIT License
- w3css : No license
- highlight.js : BSD-3-Clause License
- MathJax : Apache License 2.0
- qrcodejs : MIT License