StartsWith and IsStartOf (String functions): Difference between revisions
m (Created page with "{{Template:String:IsStartOf subtitle}} ==Syntax== {{Template:String:IsStartOf syntax}} ===Syntax terms=== <table class="syntaxTable"> <tr><th>%boolean</th> <td>The <var>Boolean...") |
m (→Syntax terms) |
||
Line 6: | Line 6: | ||
<table class="syntaxTable"> | <table class="syntaxTable"> | ||
<tr><th>%boolean</th> | <tr><th>%boolean</th> | ||
<td>The <var>Boolean</var> result of <var>IsStartOf</var> is <var>True</var> if:<ul><li>The length of the method object <var class="term">string</var> is at least the value of the <var>MinLength</var> argument<br><b>and</b>:<li>the method object <var class="term">string</var> is the same as the initial substring of the<var>MinLength</var> argument.</ul>If either of the above conditions does not hold, the result is <var>False</var>.</td></tr> | <td>The <var>Boolean</var> result of <var>IsStartOf</var> is <var>True</var> if:<ul><li>The length of the method object <var class="term">string</var> is at least the value of the <var>MinLength</var> argument<br><b>and</b>:<li>the method object <var class="term">string</var> is the same as the initial substring of the <var>MinLength</var> argument.</ul>If either of the above conditions does not hold, the result is <var>False</var>.</td></tr> | ||
<tr><th>string</th> | <tr><th>string</th> | ||
<td>A string which is examined to see if it is an abbreviation (i.e., an initial substring) of <var class="term">longerString</var>.</td></tr> | <td>A string which is examined to see if it is an abbreviation (i.e., an initial substring) of <var class="term">longerString</var>.</td></tr> | ||
Line 14: | Line 14: | ||
<td>A non-negative number, specifying the minimum length of the method object <var class="term">string</var> to be considered an abbreviation of <var class="term">longerString</var>.</td></tr> | <td>A non-negative number, specifying the minimum length of the method object <var class="term">string</var> to be considered an abbreviation of <var class="term">longerString</var>.</td></tr> | ||
</table> | </table> | ||
==Examples== | ==Examples== | ||
===Determining if option is valid abbreviation=== | ===Determining if option is valid abbreviation=== |
Revision as of 15:52, 23 May 2011
Is the method object string an initial substring of the argument string? (String class) [introduced in Sirius Mods 7.9 βeta]
Syntax
%boolean = string:IsStartOf( longerString, MinLength= number)
Syntax terms
%boolean | The Boolean result of IsStartOf is True if:
|
---|---|
string | A string which is examined to see if it is an abbreviation (i.e., an initial substring) of longerString. |
longerString | A string which is examined to see if the method object string is an abbreviation of it. |
MinLength | A non-negative number, specifying the minimum length of the method object string to be considered an abbreviation of longerString. |
Examples
Determining if option is valid abbreviation
One common task is confirming whether some user input is a valid abbreviation for one of several longer terms. This is one motivation for the MinLength argument; there may be overlap in the initial substrings of the longer terms. Consider the following fragment:
%opt = %(system):arguments:toUpper if %opt:isStartOf('MAXAMOUNT', 5) then ... elseIf %opt:isStartOf('MAXTIME', 5) then ... else PrintText Invalid argument: {%opt}
If the argument to this proc is max
, that would not distinguish it between maxAmount
and maxTime
; hence the MinLength argument value of 5 is used to enforce that at least maxAm
or maxTi
is entered (a value of 4 would also have disambiguated the abbreviations in this case).
Several single-line examples
The following fragment:
PrintText {~= 'a':IsStartOf('abc', 1) } PrintText {~= 'a':IsStartOf('abc', 2) } PrintText {~= 'a':IsStartOf('abc', 0) } PrintText {~= 'x':IsStartOf('abc', 1) } PrintText {~= 'x':IsStartOf('abc', 0) } PrintText {~= :IsStartOf('abc', 0) }
produces the following output:
'a':IsStartOf('abc', 1) = True 'a':IsStartOf('abc', 2) = False 'a':IsStartOf('abc', 0) = True 'x':IsStartOf('abc', 1) = False 'x':IsStartOf('abc', 0) = False