| This template uses Lua:
|
This template determines whether the first word in the argument provided begins with a vowel or consonant and returns with it "a" or "an" depending on the assessment.
In general, it returns "an" if the first letter is a, e, i, o, or u, and "a" if any other:
"{{a or an|word}}"
→ "a word"
"{{a or an|elephant}}"
→ "an elephant"
To capitalize "a", wrap the template in {{ucfirst:...}}
.
"{{ucfirst:{{a or an|word}}}}"
→ "A word"
"{{ucfirst:{{a or an|elephant}}}}"
→ "An elephant"
Words that begin with eu, ew, uni, etc., and others like one, once, and U are exceptions:
"{{a or an|European}}"
→ "a European"
"{{a or an|one-sided game}}"
→ "a one-sided game"
"{{a or an|U-turn}}"
→ "a U-turn"
"{{a or an|Ukrainian}}"
→ "a Ukrainian"
"{{a or an|university}}"
→ "a university"
Some exceptions are made to the above rule.
"{{a or an|Euler diagram}}"
→ "an Euler diagram"
"{{a or an|unimportant case}}"
→ "an unimportant case"
Words that begin with a consonant letter also have some exceptions:
"{{a or an|heir}}"
→ "an heir"
"{{a or an|hour}}"
→ "an hour"
"{{a or an|honor}}"
→ "an honor"
"{{a or an|honour}}"
→ "an honour"
"{{a or an|nth degree}}"
→ "an nth degree"
"{{a or an|x-ray image}}"
→ "an x-ray image"
"{{a or an|Xbox}}"
→ "an Xbox"
"{{a or an|ytterbium fiber}}"
→ "an ytterbium fiber"
Words in all caps are treated as initialisms. If an initialism begins with F, H, L, M, N, R, S, or X, it returns "an". If it begins with U, it returns "a". Thus:
"{{a or an|LED}}"
→ "an LED"
"{{a or an|led}}"
→ "a led"
"{{a or an|URL}}"
→ "a URL"
"{{a or an|url}}"
→ "an url"
Some notable acronyms are made exceptions.
"{{a or an|FIFA referee}}"
→ "a FIFA referee"
"{{a or an|NASA program}}"
→ "a NASA program"
If the first word begins with 8, 11, or 18, it returns "an", unless it is read with "hundred", "thousand", etc. at the beginning.
"{{a or an|11}}"
→ "an 11"
"{{a or an|18th}}"
→ "an 18th"
"{{a or an|110}}"
→ "a 110"
"{{a or an|1800}}"
→ "an 1800" (assumes it's a year)
"{{a or an|1,800}}"
→ "a 1,800"
"{{a or an|180,000}}"
→ "a 180,000"
"{{a or an|180000}}"
→ "a 180000"
"{{a or an|18,000,000}}"
→ "an 18,000,000"
"{{a or an|18000000}}"
→ "an 18000000"
If |variety=us
is set, herb(s) and herbal are treated as starting with a vowel sound.
"{{a or an|herb}}"
→ "a herb"
"{{a or an|herb|variety=us}}"
→ "an herb"
Words before which people have not settled on whether to use "a" or "an" are generally not made exceptions, so the general rules apply.
"{{a or an|FAQ}}"
→ "an FAQ"
"{{a or an|upsilon}}"
→ "an upsilon"
If the first letter is a non-Latin character, it returns "a" by default.
If the parameter is not entered, it returns an empty string.
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. |
|
|
---|
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 matches quotes. |
| |
|
---|
Dedicated | {{delink}} | Removes wikilink brackets (wikicode). | {{remove file prefix}} | Removes "File:" (or "Image:") from filenames. | {{PAGENAMEBASE}} | To trim off any parenthesis text at the end of a string (disambiguation). | {{title disambig text}} | Returns text in parentheses at the end of a string (disambiguation). |
| {{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. |
|
|
---|
|
|
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. | {{repeat}} | Repeat a 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. | {{iflenge}} | [if len]gth [g]reater than or [e]qual to. | {{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. |
|
|
|
|
|