Jump to content
Toggle menu
  • 3 articles
  • 75 files
  • 7 users
  • 37.9K edits
Neodyland Wiki
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
Extending the "Technical details" section. This doc is now finished.
use {{TemplateBox}}, uses Lua, remove redundant category and interwikis already being in Wikidata
 
(32 intermediate revisions by 15 users not shown)
Line 1: Line 1:
{{documentation subpage}}
{{Use sandbox}}
{{intricate template}}
{{Lua|Module:String}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
{{TemplateBox
  |1        = 1
  |1label-en= string
  |1d-en    = The string to get the length of
  |1aliases = <!-- List of aliases, separated by / (a slash) -->
  |1type    = <!-- number, string, string/wiki-user-name, string/wiki-page-name, string/line; unknown -->
  |1def    = <!-- default value for the parameter -->
  |1stat    = required


This is the {{tl|str len full}} meta-template.
  |name              = Str len
 
  |desc              = This template takes a string as parameter and returns its length (excluding whitespace at the start and end).
It takes a string as parameter and returns its length. It can count up to 500 in length, and returns 500 for strings that are too long.
  |usage-notes        =
 
  |namespace          = template
'''Note!''' For most usage cases it is much easier and costs much less server resources to use {{tl|str ≥ len}} or one of its sister templates. See the [[#See also|see also]] section below.
  |usergroup          = all
 
  |shorthand          =
=== Examples ===
  |mustbesubst        =
  |setscats          =
  |placement          =
  |example            =
  |example-value      =
  |relieson          =
  |seealso            = {{string templates see also}}
  |print              =
  |type              =
  |i18n-method        = -
  |i18n-desc          =
  |i18n-subpage      =
  |i18n-mediawiki-msg =
  |useTemplateData    = only
}}
== Examples ==


If the parameter is empty or undefined it is considered to be of zero length:  
If the parameter is empty or undefined it is considered to be of zero length:  


<pre>
:<code><nowiki>{{str len}}</nowiki></code> returns {{str len}}
{{str len full}}, {{str len full|}}, {{str len full| }}
:<code><nowiki>{{str len|}}</nowiki></code> returns {{str len|}}
</pre>
:<code><nowiki>{{str len| }}</nowiki></code> returns {{str len| }}
:{{str len full}}, {{str len full|}}, {{str len full| }}
 
This template counts the length of the string, even if it contains spaces or looks like a number:
 
<pre>
{{str len full| ab cde }}, {{str len full| 1234567 }}
</pre>
:{{str len full| ab cde }}, {{str len full| 1234567 }}
 
It can measure strings up to 500 in length, and returns 500 for strings that are too long:
 
<pre>
{{str len full| 499-characters... }}, {{str len full| 1000-characters... }}
</pre>
 
:{{str len full| abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi }}, {{str len full| abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghij }}
 
=== Technical details ===
 
MediaWiki has no parser function or magic word to measure string lengths. And measuring string length using template code is very heavy on the servers. Thus this template is as optimised as possible. But you should consider using {{tl|str ≥ len}} instead, since for most usage cases it is much easier to use and it costs much less server resources.


This template calls {{tl|str len full/core}} which does most of the work. For documentation on the internal workings of these two templates see /core.
It counts the length correctly, even if the string contains spaces, looks like a number, or contains special characters:


The [[Template talk:Str len full|talk page]] might also have more details.
:<code><nowiki>{{str len| ab cde }}</nowiki></code> returns {{str len| ab cde }}


=== See also ===
:<code><nowiki>{{str len| 1234567 }}</nowiki></code> returns {{str len| 1234567 }}


{{string templates see also}}
:<code><nowiki>{{str len| café åäö }}</nowiki></code> returns {{str len| café åäö }}


<includeonly>
It can measure strings over 500 in length:
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS -->
[[Category:String manipulation templates|{{PAGENAME}}]]


</includeonly>
:<code><nowiki>{{str len| 499-characters... }}</nowiki></code> returns {{str len| abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi }}
:<code><nowiki>{{str len| 1000-characters... }}</nowiki></code> returns {{str len| abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghij }}
Cookies help us deliver our services. By using our services, you agree to our use of cookies.