Jump to content

Àdàkọ:Str ≥ len/doc

Lát'ọwọ́ Wikipedia, ìwé ìmọ̀ ọ̀fẹ́

Lua error in package.lua at line 80: module 'Module:Transclusion_count/data/S' not found.

This is the {{str ≥ len}} meta-template.

It helps other templates check if a string is "longer or equally long" vs. "shorter" than a given length.

This template takes 3 to 4 unnamed parameters.

Here is how to check if the string "abcde" is 4 characters or more:

{{str ≥ len | abcde | 4
| Equal or longer.
| Shorter.
}}

Which returns this:

Equal or longer.

Templates have a problem to handle parameter data that contains equal signs "=". But that is easily solved by using numbered parameters. Here we check if the string "ab=cde" is 100 characters or more:

{{str ≥ len 
| 1 = ab=cde 
| 2 = 100
| 3 = Equal "=" or longer.
| 4 = Shorter, not "=".
}}

Which returns this:

Shorter, not "=".

It probably is a good habit to always use the numbered parameters, since you might not know beforehand exactly how the data will look that your template will feed to this meta-template.

Detailed parameter explanation:

{{str ≥ len 
| 1 = A string, 0-500 characters long.
| 2 = 0 - 500
| 3 = Data to return/render when "longer than or equally long".
| 4 = Data to return/render when "shorter than".
}}

Empty or undefined strings are considered to be of 0 length. Strings longer than 500 are not truncated to 500.

Length values below 0 are considered to be 0. Length values above 500 are considered to be 500.

Thus a string of 500 length or more are always considered to be "longer than or equally long", no matter what length value it is compared with.

Technical details

[àtúnṣe àmìọ̀rọ̀]

The potential alternative templates names {{str >= len}} or (for the opposite) {{str < len}} do not work in MediaWiki.

Even though this is a string handling template it uses very efficient code. (While some of the other string handling templates are probably so heavy on the servers that we perhaps should not use them.)

Templates have problems to handle parameter data that contains pipes "|", unless the pipe is inside another template {{name|param1}} or inside a piped link [[Help:Template|help]]. Thus templates can not handle wikitables as input unless you escape them by using the {{!}} template. This makes it hard to use wikitables as parameters to templates. Instead the usual solution is to use "HTML wikimarkup" for the table code, which is more robust.

Trimming templates:

  • {{Trunc}} – To trim down to a specified number of characters.
  • {{Str left}} – To trim down to a specified number of characters, or duplicate the string to a specified number.
  • {{Str crop}} – To crop a specified number of characters off the end.
  • {{Chop head and tail}} — To crop a specified number of characters off the beginning and end.
  • {{Str trim}} — To trim any leading or trailing whitespace.
  • {{First word}} — To trim down to the first space.
  • {{Str letter/trim}} — To trim down to the beginning letters.
  • {{Str number/trim}} — To trim down to the beginning numbers.
  • {{Title without disambig}} — To trim off any parenthesis text at the end of a string.
  • {{Title disambig text}} – Returns text in parenthesis at the end of a string.
  • {{Str right}} — To trim the first specified number of characters.
  • {{Str rightc}} — To trim the first specified number of characters, returns a parameter if the string is empty.
  • {{Str rightmost}} — To trim down to the last specified number of characters.
  • {{Str rep}} — Returns the string, replacing the first occurrence of a specified string, with another string. Requires a match.
  • {{Str repc}} — Returns the string, replacing the first occurrence of a specified string, with another string, if there is one.
  • {{Str sub}} — To trim down to a specified number, starting at a given number from the left, less than 50.
  • {{Substr any}} — To trim down to a specified number, starting at a given number from the left, less than 50, can extract accented letters.
  • {{Str sub long}} — To trim down to a specified number, starting at a given number from the left, less than 100.

Analyzing templates:

  • {{Str endswith}} – To check if a string ends with a given string.
  • {{Str find}} – Returns the numerical location of a given string in a string, up to 50 characters.
  • {{Str find long}} – Returns the numerical location of a given string in a string, up to 80 characters.
  • {{Str index}} – Returns a given character from a string, but not accented letters.
  • {{Str index any}} – Returns a given character from a string, but not a space.
  • {{Chr}} – Returns a given character from a string, including a space.
  • {{Str len}} – Returns a string's length. Can count up to 500 characters.
  • {{Str letter}} — Returns the number of letters that begin a string.
  • {{Str number}} — Returns the number of numbers that begin a string.
  • {{Ship prefix}} — Returns the length of a ship name prefix, if listed.

String length comparison templates:

  • {{Str ≥ len}} – To check if a string is "longer or equally long" or "shorter" than a given length.
  • {{Str ≤ len}} – To check if a string is "shorter or equally long" or "longer" than a given length.
  • {{Str ≠ len}} – To check if a string is "not equal" or "equal" to a given length.
  • {{Str ≤ ≥ len}} – To check if a string is "shorter", "equal", or "longer" than a given length.

Sandboxes and test cases:

Technical stuff: