(7 intermediate revisions by 6 users not shown) Line 1:
Line 1:
{{Documentation subpage}}
{{Documentation subpage}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
{{high-use|180612}}
{{lua|Module:String}}
<!-- --PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE-- -->
__NOTOC__
__NOTOC__
=== Usage ===
This template returns the first word of the first parameter. Use {{para|1}} for the first parameter if the string may contain an [[equals sign]] ( =). By default, words are delimited by spaces, but the optional parameter {{para|sep}} can set the separator to any character.
Returns the first word of the first parameter. By default, words are delimited by spaces, but optional parameter sep=/ can set the word separator to slash (or any other character). The parameter should ''not'' have leading spaces, unless the word separator, sep, is set to another character.
==Usage==
One parameter (space as separator):
* <code>'''{{{{BASEPAGENAME}}|'''<var>string</var>'''}}'''</code>
* <code>'''{{{{BASEPAGENAME}}|1 ='''<var>string< /var>'' '}} '''</code>
=== Examples ===
Two parameters (user-defined character as separator):
* <code>'''{{{{BASEPAGENAME}}|'''<var>string</var>'''|sep ='''<var>character</var>'''}}'''</code>
* <code>'''{{{{BASEPAGENAME}}|1 ='''<var>string</var>'''|sep ='''<var>character</var>'''}}'''</code>
* {{first word|Foo bar baz}} → {{first word|Foo bar baz}}
==Examples==
* {{first word|Foo}} → {{first word|Foo}}
* <code>{{{{BASEPAGENAME}}|Foo bar baz}}</code> → {{{{BASEPAGENAME}}|Foo bar baz}}
* {{first word|Foo-bar-baz}} → {{first word|Foo-bar-baz}}
* <code> {{{{BASEPAGENAME}} | Foo bar baz}}</code> → {{{{BASEPAGENAME}} | Foo bar baz}}
* {{first word|Foo-bar-baz|sep=- }} → {{first word|Foo-bar-baz|sep=- }}
* <code> {{{{BASEPAGENAME}} |Foo}}</code> → {{{{BASEPAGENAME}} |Foo}}
* {{first word|34,000,500|sep=, }} → {{first word|34,000,500|sep=, }}
* <code> {{{{BASEPAGENAME}} |Foo-bar-baz}}</code> → {{{{BASEPAGENAME}} |Foo-bar-baz}}
* {{first word|1=len = a+b |sep== }} → {{first word|1=len = a+b |sep== }}
* <code> {{{{BASEPAGENAME}} |Foo-bar-baz|sep=-}}</code> → {{{{BASEPAGENAME}} |Foo-bar-baz|sep=-}}
* {{first word|Hear ye, users |sep=, }} → {{first word|Hear ye, users |sep=, }}
* <code> {{{{BASEPAGENAME}} |34,000,500|sep=,}}</code> → {{{{BASEPAGENAME}} |34,000,500|sep=,}}
* <code> {{{{BASEPAGENAME}} |Hear ye, users |sep=, }}</code> → {{{{BASEPAGENAME}} |Hear ye, users |sep=, }}
* <code> {{{{BASEPAGENAME}} |1=len = a+b |sep== }}</code> → {{{{BASEPAGENAME}} |1=len = a+b |sep== }}
=== Performance considerations ===
==See also ==
The template has been optimized to run very quickly, with template expansion depth of 11 levels. The search for the word separator is run only once, with [[Template:Strfind_short]] used to scan the first 25 characters. Performance has been optimized by using [[Template:Strloc_prefix]] to find then extract the first word, else return the whole when not found.
{{String-handling templates |trim}}
=== See also ===
<includeonly> {{Sandbox other||
{{navbox string handling templates}}
<includeonly>
<!-- --CATEGORIES BELOW THIS LINE , PLEASE:-- -->
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS -->
[[Category:String manipulation templates]]
[[Category:String manipulation templates]]
[[Category:Lua-based templates]]
[[as:Template:First word]]
}} </includeonly>
[[es:Plantilla:Primera palabra]]
[[sl:Predloga:First word]]
</includeonly>
This template is used on approximately 248,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 :
This template returns the first word of the first parameter. Use |1=
for the first parameter if the string may contain an equals sign (=). By default, words are delimited by spaces, but the optional parameter |sep=
can set the separator to any character.
Usage
One parameter (space as separator):
{{First word| string }}
{{First word|1= string }}
Two parameters (user-defined character as separator):
{{First word| string |sep= character }}
{{First word|1= string |sep= character }}
Examples
{{First word|Foo bar baz}}
→ Foo
{{First word| Foo bar baz}}
→ Foo
{{First word|Foo}}
→ Foo
{{First word|Foo-bar-baz}}
→ Foo-bar-baz
{{First word|Foo-bar-baz|sep=-}}
→ Foo
{{First word|34,000,500|sep=,}}
→ 34
{{First word|Hear ye, users|sep=,}}
→ Hear ye
{{First word|1=len = a+b|sep==}}
→ len
See also
String-handling templates
By counting {{str mid }} To return a substring specified by position and length. {{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 right }} To trim the first specified number of characters. {{str rightc }} To return a number of characters from the end, returns a parameter if the string is empty. {{str rightmost }} To trim down to the last specified number of characters. {{str sub old }} To trim down to a specified number, starting at a given number from the left. {{str sub new }} Select a substr based on starting and ending index. {{str index }} Returns a given character from a string, but not accented letters. {{Plain text }}, {{Nowiki }} Strips wikicode from a string.
By checking {{trim }} To trim any leading or trailing whitespace {{str letter/trim }} To trim down to the beginning letters. {{str number/trim }} To trim down to the beginning numbers. {{trim brackets }} To trim any leading or trailing square brackets. {{trim quotes }} To trim leading or trailing matching quotes.
Dedicated {{WikiProjectbasename }} Removes "WikiProject" from a pagename. {{remove unranked }} Removes the string "unranked_" from the left of a string (taxonomy). {{ship prefix }} Returns the length of a ship's name prefix, if listed (ship names). {{title year }} Returns the 4-digit year from a pagename, if any. {{title decade }} Returns the 4-digit decade (e.g. "1740s") from a pagename, if any.
Insertion, replacement and length
{{strloc insert }} Inserts a string at character location strloc, or appends if strloc<=0. {{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
{{str len }} Returns a string's length. {{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.
Analysis and technical
{{str endswith }} To check if a string ends with a given string. {{str find }} {{strfind short }} Returns the numerical location of a given string in a string. {{str find0 }} Zero-based substring search. {{str sub find }} Searches a substring in a string at the given offset. {{str letter }} Returns the number of letters that begin a string. {{str number }} Returns the number of numbers that begin a string. {{str gtr str }} Compares two strings for alphabetical order, and returns a value accordingly.
{{ASCII code }} Returns the ASCII value of a single character. {{a or an }} Takes a noun and produces the appropriate indefinite article, based on whether the first letter is a vowel. {{Isnumeric }} Returns number when true, blank when not numeric. {{Count on page }} Counts how many times a string is used on a page {{String on page }} Finds if yes/no a string is used on a page ...Magic words About {{padleft:|}}
. ...ParserFunctions About {{#titleparts:|}}, {{#expr:|}}, {{#ifeq:|}},
etc.