This template is used on approximately 115,000 pages . 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. Consider discussing changes on the talk page before implementing them.
This template uses Lua :
{ { Str find| text | sub_string } }
Returns the position of first appearance of sub_string in text .
The comparison is case sensitive.
Returns -1 if sub_string not found
Character position is 1 based (not 0 based as usual in calculations).
If sub_string is empty, this routine returns 1. This case will often have to be handled specially.
In the examples, the string to be searched is Abcdefghijklm:
A; 1
a; -1
def; 4
klm; 11
zyx; -1
empty;klm;-1
empty;empty; 1
Template parameters
Parameter Description Type Status Text 1The text to search within
String required Sub_string 2The string to be searched within the text
String required
String-handling templates
(help page)
Substring (select chunk of string by its position)
{ { str sub new } } Select a substring based on starting and ending index counted in either direction. { { str left } } Keep the first N characters of a string, or duplicate it to N characters. { { str crop } } Return all but the last N characters of a string. { { str index } } Return the N-th character of a string.
{ { str right } } Return substring starting at N-th character to end of string. { { str rightc } } Return the last N characters of a string; or a given value if empty. { { str sub old } } Return substring of given length starting at N-th character.
Trimming (select/remove chunk of string by character type)
Select/remove specific item from string
{ { ship prefix } } Returns the length of a ship's name prefix, if listed (ship names). { { title year } } Returns the 3-or-4-digit year from a pagename, if any. { { title decade } } Returns the 4-digit decade (e.g. "1740s") from a pagename, if any. { { title number } } Returns any number from a pagename.
Insertion, replacement and length
{ { loop } } Repeat character string a specified number of times. { { replace } } Returns the string, after replacing all occurrences of a specified string with another string. { { str rep } } Returns the string, after replacing the first occurrence of a specified string with another string. { { digits } } Returns the string, after removing all characters that are not digits 0–9 { { Nowiki } } Displays wikitext as plain text.
{ { str len } } Returns a string's length. { { str ≥ len } } Check if a string is "longer or equally long" or "shorter" than a given length. { { str ≤ len } } Check if a string is "shorter or equally long" or "longer" than a given length. { { str ≠ len } } Check if a string is "not equal" or "equal" to a given length.
Analysis and searching
{ { str startswith } } { { str endswith } } Check if a string starts or ends with a given string. { { str find } } , { { strfind short } } Returns the numerical location of a given string in a string. { { in string } } Returns optional string when given string is not found { { str count } } Count the number of occurrences of a pattern within a string.
{ { a or an } } Takes a noun and produces the appropriate indefinite article, based on whether the first letter is a vowel. { { Array } } Array manipulation and retrieval. { { Isnumeric } } Returns number when true, blank when not numeric. { { str letter } } Returns the number of letters that begin a string. { { str number } } Returns the number of numbers that begin a string.
Modules and built-in functions