Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Template:Str ≠ len/doc: Difference between revisions

Template page
Created page with "{{wikipedia|page name}} {{high-use}} {{Documentation subpage}} {{lua|Module:String}} <!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --> This is the {{tl|str ≠ len}} meta-template. It helps other templates check if a string is "not equal" vs. "equal" to a given length. '''Note!''' For most usage cases it might be better to use {{tl|str ≥ len}}. (See the see also section below.) === Usage === This template takes 3 to 4 unnamed p..."
 
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{wikipedia|page name}}
{{wikipedia|page name}}
{{high-use}}
{{Documentation subpage}}
{{Documentation subpage}}
{{lua|Module:String}}
{{lua|Module:String}}
Line 9: Line 8:
It helps other templates check if a string is "not equal" vs. "equal" to a given length.
It helps other templates check if a string is "not equal" vs. "equal" to a given length.


'''Note!''' For most usage cases it might be better to use {{tl|str ≥ len}}. (See the [[#See also|see also]] section below.)  
'''Note!''' For most usage cases it might be better to use {{tl|str ≥ len}}. (See the see also section below.)  


=== Usage ===
=== Usage ===
Line 71: Line 70:
This template would be equivalent to templates named <nowiki>{{str != len}} or {{str == len}}</nowiki>, but we can't use those template names since they don't work well in MediaWiki.
This template would be equivalent to templates named <nowiki>{{str != len}} or {{str == len}}</nowiki>, but we can't use those template names since they don't work well in MediaWiki.


[[Help:Template|Templates]] have problems to handle parameter data that contains pipes "<code>|</code>", unless the pipe is inside another template <code><nowiki>{{name|param1}}</nowiki></code> or inside a piped link <code><nowiki>[[Help:Template|help]]</nowiki></code>. Thus templates can not handle [[Help:Table|wikitables]] as input unless you escape them by using the {{tn|!}} template. This makes it hard to use wikitables as parameters to templates. Instead the usual solution is to use "[[Help:HTML in wikitext|HTML wikimarkup]]" for the table code, which is more robust.
Templates have problems to handle parameter data that contains pipes "<code>|</code>", unless the pipe is inside another template <code><nowiki>{{name|param1}}</nowiki></code> or inside a piped link <code><nowiki>[[Help:Template|help]]</nowiki></code>. 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.
 
=== See also ===
{{string-handling templates}}


<includeonly>{{Sandbox other||
<includeonly>{{Sandbox other||

Latest revision as of 17:43, 9 April 2025

This page uses Creative Commons Licensed content from Wikipedia (view authors).

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

It helps other templates check if a string is "not equal" vs. "equal" to a given length.

Note! For most usage cases it might be better to use {{str ≥ len}}. (See the see also section below.)

Usage

This template takes 3 to 4 unnamed parameters.

Here is how to check if the string "abcde" is exactly 5 characters:

{{str ≠ len | abcde | 5
| Not equal.
| Equal.
}}

Which returns this:

Equal.

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 exactly 100 characters:

{{str ≠ len 
| 1 = ab=cde 
| 2 = 100
| 3 = Not equal, "!=".
| 4 = Equal, "=".
}}

Which returns this:

Not equal, "!=".

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.

Parameters

Detailed parameter explanation:

{{str ≠ len 
| 1 = A string
| 2 = A length
| 3 = Data to return/render when "not equally long".
| 4 = Data to return/render when "equally long".
}}

Empty or undefined strings are considered to be of 0 length.

Length values below 0 are considered to be 0.

Technical details

This template would be equivalent to templates named {{str != len}} or {{str == len}}, but we can't use those template names since they don't work well in MediaWiki.

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.