틀:Str ≠ len
보이기
{{str ≠ len}} 틀은 메타 틀(틀을 위한 틀)입니다.
이 틀은 문자열이 주어진 길이와 '같지 않은지' 또는 '같은지'를 판단합니다.
알림: 서버 부하 절약 측면에서, 이 틀보다는 {{str ≥ len}} 틀을 사용하는 것이 좋습니다. 같이 보기 문단을 참고하세요.
이 틀은 루아를 사용합니다. |
사용법
이 틀을 쓸 때에는 3개 또는 4개의 이름 없는 매개변수를 씁니다. 사용할 수 있는 모든 매개변수는 다음과 같으며, 3번째나 4번째 매개변수는 생략 가능합니다. 상황에 따라 오류가 발생할 수 있으므로 사용 예를 참고하세요.
{{str ≠ len | 문자열 | 길이 | 같지 않을 때의 출력 | 같을 때의 출력 }}
|
코드 길이를 최적화하고 오류 발생 가능성을 줄이려면 다음과 같이 씁니다.
{{str ≠ len|1=|2=|3=|4=}}
|
- 문자열이 비어 있거나 지정되지 않으면 길이가 0인 것으로 간주됩니다. 문자열 길이는 500자까지로 한정됩니다.
- 0 미만의 길이는 0으로 간주됩니다. 500 초과의 길이는 500으로 간주됩니다.
- 500자를 넘는 문자열은 어떠한 길이가 주어지든 간에 항상 '같지 않음'으로 처리됩니다.
사용 예
간단한 예를 통해 이 틀의 동작을 확인할 수 있습니다.
입력 | 결과 |
---|---|
{{str ≠ len | abcde | 4 | 같지 않음 | 같음 }} |
같지 않음
|
{{str ≠ len | abcde | 5 | 같지 않음 | 같음 }} |
같음
|
한글처럼, 유니코드에는 지정되어 있으나 아스키 코드에 미포함된 문자를 문자열로 지정하면 한 문자의 바이트에 상관 없이 문자 수를 셉니다. 과거에 문제가 있던 기능으로, 현재 한국어판 위키백과에서는 올바르게 동작합니다. 버그질라:16852 참고.
입력 | 결과 |
---|---|
{{str ≠ len | 소년이여 야망을 가져라 | 11 | 같지 않음 | 같음 }} |
같지 않음
|
{{str ≠ len | 소년이여 야망을 가져라 | 12 | 같지 않음 | 같음 }} |
같음
|
{{str ≠ len | àçé | 2 | 같지 않음 | 같음 }} |
같지 않음
|
{{str ≠ len | àçé | 3 | 같지 않음 | 같음 }} |
같음
|
만약 매개변수 이름 없이 문자열에 등호(=)를 포함시키면 틀 사용시 이름 있는 매개변수로 취급되기 때문에 오류가 생깁니다. 이를 방지하기 위해서는 이름 있는 매개변수를 사용하면 됩니다. 매개변수 이름으로는 1, 2, 3, 4를 쓰면 됩니다. 다음 예는 문자열 "ab=cde"가 5자인지를 판단합니다.
입력 | 결과 |
---|---|
{{str ≠ len | 1= ab=cde | 2= 5 | 3= 같지 않음(정상) | 4= 같음(오류) }} |
같지 않음(정상).
|
{{str ≠ len | ab=cde | 5 | 같지 않음(정상) | 같음(오류) }} |
수식 오류: 알 수 없는 "같" 구두점 문자입니다.
|
다른 틀에 사용할 경우, 위와 같은 오류를 막기 위해 매개변수 이름을 지정하는 것을 권장합니다.
기술적인 내용
- 컴퓨터 자판으로 치기 쉬운 이 틀의 이름은 {{str != len}} 또는 {{str == len}}이지만 기술적 한계 때문에 현재의 이름을 쓰고 있습니다.
- 이 틀의 실행은 서버 부하를 비교적 적게 먹는 편입니다. 다른 문자열 처리 틀은 서버 부하 때문에 사용이 권장되지 않는 경우가 있는데, 그런 경우 이 틀로 대체가 가능하면 이 틀을 쓰세요. (같이 보기 문단 참조.)
- 틀 사용시 파이프 문자(|)는 매개변수 구분자로 사용되기 때문에 매개변수 자체에 파이프 문자가 들어갈 경우 특수하게 처리해야 합니다. 위키백과:틀#매개변수를 참고하세요.
- 이 틀은 내부적으로 문자열 앞에 x(엑스)를 붙여서 처리합니다. 이는
{{#ifeq:}}
기능이 0과 00 따위의 문자열을 수로 인식해 같은 것으로 처리하는 것을 막기 위해서입니다. - 이 틀은 영어판에서 가져온 것입니다. 특수문자의 처리 등에 관해서 위에 설명되지 않은 오류가 나타날 수 있습니다. 오류를 발견하실 경우 틀토론 또는 틀의 주 제작자 사용자 토론에 글을 남겨 주세요. 직접 오류를 수정하실 경우 이 틀을 사용하는 다른 틀에서 올바르게 동작하는지 시험을 거쳐 주세요.