This is the template sandbox page for Template:Str left (diff). See also the companion subpage for test cases. |
This template is used in system messages, and on approximately 962,000 pages, or roughly 2% of all pages. Changes to it can cause immediate changes to the Wikipedia user interface. To avoid major disruption and server load, any changes should be tested in the template's /sandbox or /testcases subpages, or in your own user subpage. The tested changes can be added to this page in a single edit. Please discuss changes on the talk page before implementing them. Preview message: Transclusion count updated automatically (see documentation). |
{{Str left|<string>|<count>}}
Gives the resultant <count> of characters creating a substring of characters from the start of the trimmed string (i.e. the substring returned will have length <count>, exclusive of leading whitespace characters, which are trimmed first before <count> is invoked).
If <count> is invalid, empty or zero, an empty string is returned. If undefined, it defaults to 1.
{{ Str left | Lorem ipsum dolor sit amet | 10 }}
→ Lorem ipsu{{Str left| Lorem ipsum dolor sit amet | 4 }}
→ Lore, (note leading spaces trimmed!){{ Str left | Lorem ipsum dolor sit amet | 1 }}
→ L{{ Str left | Lorem ipsum dolor sit amet | 0 }}
→{{ Str left | Lorem ipsum dolor sit amet | }}
→{{ Str left | Lorem ipsum dolor sit amet }}
→ L{{ Str left | Lorem ipsum dolor sit amet | 40 }}
→ Lorem ipsum dolor sit ametLorem ipsum do{{ Str left | àçé | 2 }}
→ àç
All the limitations of use for this template and shown below are caused by the current implementation of the {{padleft:}} parser function used in this template, which does not filter its third parameter containing the characters used for padding a string to the specified length (it currently counts incorrectly the characters to extract from the padding string, and incorrectly measures its effective length; in addition this parameter is limited to 500 bytes).
The following examples are demonstrating that this template does not interpret character entity references as the character they represent. It treats them as multiple characters and can leave them truncated.
{{ Str left | a c | 3 }}
→ a&n
{{ Str left | aBc | 3 }}
→ a&#
{{ Str left | a c | 3 }}
→ a c
{{ Str left | a c | 3 }}
→ a&#
This template will erase nowiki tags without counting their length:
{{ Str left | a<nowiki/>bcd | 3 }}
→ abc
{{ Str left | a<nowiki>E</nowiki>bcd | 3 }}
→ abc
{{ Str left | a<nowiki/>bc | 10 }}
→ abcabcabca
HTML comments, and the "noinclude", "includeonly" and "onlyinclude" wiki markup tags are also ignored, because they are preprocessed in template parameters, before including it and substituting parameters:
{{ Str left | a<noinclude/>bc | 3 }}
→ abc{{ Str left | a<!-- comment -->bc | 3 }}
→ abcNote also that the specified length will cause the input string to be padded by repeating it, if this length is larger than the input string length:
{{ Str left | Abc. | 10 }}
→ Abc.Abc.AbTemplateData for Str left
A template to give the <count> substring of characters from the start of the trimmed string
Parameter | Description | Type | Status | |
---|---|---|---|---|
String | 1 | The string to be trimmed and counted | String | required |
Count | 2 | Gives the <count> substring of characters from the start of the trimmed string | Number | required |