문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. {{설명문서 안내}} <!-- 여기에 틀에 대한 설명문서를 작성하세요. --> '''<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> 틀:Str left/설명문서 문서로 돌아갑니다.