Difference between revisions of "Utf8.offset"
From GiderosMobile
(7 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
'''Available since:''' Gideros 2016.06<br/> | '''Available since:''' Gideros 2016.06<br/> | ||
+ | '''Class:''' [[utf8]]<br/> | ||
+ | |||
=== Description === | === Description === | ||
− | Returns the position (in bytes) where the encoding of the n-th character of s (counting from position i) starts | + | Returns the position (in bytes) where the encoding of the n-th character of ''s'' (counting from position ''i'') starts. |
− | + | <syntaxhighlight lang="lua"> | |
− | |||
− | < | ||
(number) = utf8.offset(s,n,i) | (number) = utf8.offset(s,n,i) | ||
− | </ | + | </syntaxhighlight> |
+ | |||
+ | A negative ''n'' gets characters before position ''i''. | ||
+ | |||
+ | The default for ''i'' is 1 when ''n'' is non-negative and #s + 1 otherwise, so that utf8.offset(s, -n) gets the offset of the n-th character from the end of the string. | ||
+ | |||
+ | If the specified character is neither in the subject nor right after its end, the function returns nil. | ||
+ | |||
+ | As a special case, when ''n'' is 0 the function returns the start of the encoding of the character that contains the i-th byte of s. | ||
+ | |||
+ | '''This function assumes that ''s'' is a valid UTF-8 string''' | ||
+ | |||
=== Parameters === | === Parameters === | ||
− | '''s''': (string) | + | '''s''': (string) <br/> |
− | '''n''': (number) | + | '''n''': (number) <br/> |
− | '''i''': (number) | + | '''i''': (number) '''optional'''<br/> |
+ | |||
=== Return values === | === Return values === | ||
'''Returns''' (number) position (in bytes)<br/> | '''Returns''' (number) position (in bytes)<br/> | ||
+ | |||
+ | {{Utf8}} |
Latest revision as of 22:11, 1 December 2023
Available since: Gideros 2016.06
Class: utf8
Description
Returns the position (in bytes) where the encoding of the n-th character of s (counting from position i) starts.
(number) = utf8.offset(s,n,i)
A negative n gets characters before position i.
The default for i is 1 when n is non-negative and #s + 1 otherwise, so that utf8.offset(s, -n) gets the offset of the n-th character from the end of the string.
If the specified character is neither in the subject nor right after its end, the function returns nil.
As a special case, when n is 0 the function returns the start of the encoding of the character that contains the i-th byte of s.
This function assumes that s is a valid UTF-8 string
Parameters
s: (string)
n: (number)
i: (number) optional
Return values
Returns (number) position (in bytes)