조무위키
조무위키
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보
행위
틀
토론
편집
역사 보기
틀
Str left/설명문서
편집하기
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
'''<nowiki>{{str left}}</nowiki>''' 틀은 문자열을 지정한 길이로 만들어 주는 틀입니다. 주어진 문자열이 지정한 길이보다 길면 자르고, 짧으면 반복합니다. ==사용법== 이 틀을 쓸 때에는 다음과 같이 2개의 이름 없는 매개변수를 씁니다. {| class="wikitable" style="margin: 1em 3em;" |style="padding: 1em;"|<code><nowiki>{{str left | 문자열 | 길이 }}</nowiki></code> |} 코드 길이를 최적화하고 오류 발생 가능성을 줄이려면 다음과 같이 씁니다. 문자열에 등호(=)가 포함된 경우의 잘못된 동작을 방지합니다. {| class="wikitable" style="margin: 1em 3em;" |style="padding: 1em;"|<code><nowiki>{{str left|1=|2=}}</nowiki></code> |} *길이(매개변수 2)가 잘못된 수이거나 비어 있으면, 텅 빈 문자열을 출력합니다. 길이가 아예 미정의되어 있으면 1로 간주됩니다. *출력되는 결과는 최대 500자입니다. 그 이상의 문자열은 잘립니다. *다른 틀을 사용하지 않으므로 서버 부하가 적습니다. *주어진 문자열에 연속된 공백이나 위키 마크업 표현 등이 들어 있으면 의도하지 않은 결과를 출력할 수도 있습니다. '사용 예' 문단과 '제한점 및 알려진 버그' 문단을 참고하세요. ===사용 예=== 간단한 사용 예: {| class="wikitable" style="margin: 1em 3em;" !style="padding: 1em;"|입력||결과 |- |style="padding: 1em;"|<code><nowiki>{{str left | ABC XYZ | 5 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | ABC XYZ | 5 }}</code> |- |style="padding: 1em;"|<code><nowiki>{{str left | ABC XYZ | 10 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | ABC XYZ | 10 }}</code> |- |style="padding: 1em;"|<code><nowiki>{{str left | ABC XYZ | 1 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | ABC XYZ | 1 }}</code> |- |style="padding: 1em;"|<code><nowiki>{{str left | ABC XYZ | 0 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | ABC XYZ | 0 }}</code> |- |style="padding: 1em;"|<code><nowiki>{{str left | ABC XYZ | }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | ABC XYZ | }}</code> |- |style="padding: 1em;"|<code><nowiki>{{str left | ABC XYZ }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | ABC XYZ }}</code> |} 주어진 문자열 안의 공백( )도 한 문자로 취급되며, 연속된 공백도 그 수 만큼 문자로 취급됩니다. 단, 출력에서는 중복된 공백이나 문자열 끝의 공백은 사라집니다. 다음 예를 참고하세요. {| class="wikitable" style="margin: 1em 3em;" !style="padding: 1em;"|입력||결과 |- |style="padding: 1em;"|<code><nowiki>{{str left | 3</nowiki> <nowiki>spaces here. | 5 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | 3 spaces here. | 5 }}</code> |- |style="padding: 1em;"|<code><nowiki>{{str left | 3</nowiki> <nowiki>spaces here. | 4 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | 3 spaces here. | 4 }}</code> |} 한글처럼, [[유니코드]]에는 지정되어 있으나 [[미국 정보 교환 표준 부호|아스키 코드]]에 미포함된 문자를 문자열로 지정하면 한 문자의 [[바이트]]에 상관 없이 문자 수를 셉니다. 과거에 문제가 있던 기능으로, 현재 디시위키에서는 올바르게 동작합니다. [[bugzilla:16852|버그질라:16852]] 참고. {| class="wikitable" style="margin: 1em 3em;" !style="padding: 1em;"|입력||결과 |- |style="padding: 1em;"|<code><nowiki>{{str left | 소년이여 야망을 가져라 | 7 }}</nowiki></code>||style="padding: 1em;"|<code></code>{{str left | 소년이여 야망을 가져라 | 7 }} |- |style="padding: 1em;"|<code><nowiki>{{str left | àçé | 5 }}</nowiki></code>||style="padding: 1em;"|<code></code>{{str left | àçé | 5 }} |} 만약 문자열에 등호(<nowiki>=</nowiki>)가 포함되어 있으면 틀 사용시 이름 있는 매개변수로 취급되기 때문에 오류가 생깁니다. 이를 방지하기 위해서는 이름 있는 매개변수를 사용하면 됩니다. 매개변수 이름으로는 1, 2를 쓰면 됩니다. 다음 예는 문자열 'ab=cde'를 다섯 자로 맞추는 것을 의도하는 코드입니다. {| class="wikitable" style="margin: 1em 3em;" !style="padding: 1em;"|입력||결과||설명 |- |style="padding: 1em;"|<code><nowiki>{{str left | 1= ab=cde | 2= 5 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | 1= ab=cde | 2= 5 }}</code>||style="padding: 1em;"| (올바른 예) 올바르게 동작함. |- |style="padding: 1em;"|<code><nowiki>{{str left | ab=cde | 5 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | ab=cde | 5 }}</code>||style="padding: 1em;"| (잘못된 예) 엉뚱한 결과가 출력됨. |} ===제한점 및 알려진 버그=== 이 틀은 [[디시위키:매직워드|디시위키 매직워드]]인 <nowiki>{{padleft:}}</nowiki>를 변칙적으로 사용합니다. 틀에 주어진 문자열을 <nowiki>{{padleft:}}</nowiki>의 세 번째 매개변수로 입력하는데, <nowiki>{{padleft:}}</nowiki> 기능은 그에 대해 별다른 오류 검증을 하지 않기 때문에 문자열의 유효 문자 수를 잘못 셀 수 있습니다. 또한 해당 매개변수는 그 크기가 500자로 제한됩니다. 문자열에 [[문자 참조]]가 포함될 경우 다음과 같이 잘못 처리될 수 있습니다. {| class="wikitable" style="margin: 1em 3em;" !style="padding: 1em;"|입력||결과||설명 |- |style="padding: 1em;"|<code><nowiki>{{str left | a&nbsp;c | 3 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | a c | 3 }}</code>||style="padding: 1em;"| 'a c'를 의도한 입력. |- |style="padding: 1em;"|<code><nowiki>{{str left | a&nbsp;c | 8 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | a c | 8 }}</code>||style="padding: 1em;"| 문자참조 &nbsp;가 6자의 문자로 처리되어 출력되고, 이것이 [[웹 브라우저|브라우저]]에서 공백으로 처리됨. |- |style="padding: 1em;"|<code><nowiki>{{str left | a&#66;c | 3 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | aBc | 3 }}</code>||style="padding: 1em;"| 'abc'를 의도한 입력. |- |style="padding: 1em;"|<code><nowiki>{{str left | a&#32;c | 3 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | a c | 3 }}</code>||style="padding: 1em;"| 'a c'를 의도한 입력. |} 문자열에 위키 마크업 표현이 사용될 경우 잘못 처리될 수 있습니다. <nowiki> 태그는 내부적으로 고유의 제어문을 통해 처리됩니다. 제어문은 제어 문자 \x07([[:en:Bell character|BELL]])과 'UNIQ'로 시작하여 'QINU'와 제어 문자로 끝나는 43바이트 길이의 문자열입니다. 이 제어문은 최종적으로 생성된 HTML 페이지에서는 표시되지 않아야 정상입니다. 그러나 다음과 같이 제어문이 그대로 출력될 수도 있습니다. [[bugzilla:22555|버그질라:22555]] 참고. {| class="wikitable" style="margin: 1em 3em;" !style="padding: 1em;"|입력||결과||설명 |- |style="padding: 1em;"|<code><nowiki>{{str left | a<nowiki/>bc | 3 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | a<nowiki/>bc | 3 }}</code>||style="padding: 1em;"| 'abc'를 의도한 입력이나 제어문의 첫 두 바이트가 출력됨. |- |style="padding: 1em;"|<code><nowiki>{{str left | a<nowiki/>bc | 43 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | a<nowiki/>bc | 43 }}</code>||style="padding: 1em;"| 제어문 중 42바이트가 출력됨. |- |style="padding: 1em;"|<code><nowiki>{{str left | a<nowiki/>bc | 44 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | a<nowiki/>bc | 44 }}</code>||style="padding: 1em;"| 제어문 43바이트가 43개의 문자로 처리 및 출력되었으나 최종 HTML 페이지 생성 과정에서 사라짐. |- |style="padding: 1em;"|<code><nowiki>{{str left | a<nowiki/>bc | 45 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | a<nowiki/>bc | 45 }}</code>||style="padding: 1em;"| 제어문 43바이트가 끝나고 'b'가 출력됨. |} <nowiki>의 경우와 달리, HTML 주석이나 <noinclude>, <includeonly> 등의 위키 마크업 표현은 올바르게 처리됩니다. 이는 해당 표현이 매직워드까지 넘어가지 않고 틀 자체에서 전처리되기 때문입니다. {| class="wikitable" style="margin: 1em 3em;" !style="padding: 1em;"|입력||결과 |- |style="padding: 1em;"|<code><nowiki>{{str left | a<noinclude/>bc | 3 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | a<noinclude/>bc | 3 }}</code> |- |style="padding: 1em;"|<code><nowiki>{{str left | a<!-- 주석 -->bc | 3 }}</nowiki></code>||style="padding: 1em;"|<code>{{str left | a<!-- 주석 -->bc | 3 }}</code> |}<includeonly>[[분류:문자열 처리 틀]]</includeonly>
요약:
조무위키에서의 모든 기여는 CC BY-SA 4.0 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
조무위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
이 문서에서 사용한 틀:
틀:Str left
(
편집
)