# ustring 库模块帮助文档

## ustring 成员列表 <a id="ustring" href="#ustring">&#x23;</a>

UTF-16 字符串（ustring）函数库。  
用于操作 UTF-16 编码的 Unicode 字符串。  
aardio 字符串默认为 UTF-8 编码。  
aardio 字符串包含在单引号内并在尾部加小写 u 标记可创建 UTF-16 字符串（ustring）。

### ustring.breakAny('字符串'u,'查找字符集'u) <a id="ustring.breakAny" href="#ustring.breakAny">&#x23;</a>
查找字符集中任意字符开始的字符串。  
参数 @2 默认为空白字符。

### ustring.charCodeAt(字符串,位置) <a id="ustring.charCodeAt" href="#ustring.charCodeAt">&#x23;</a>
返回指定位置字符的 Unicode 码点（ char's code point ）。  
位置按字符计数（无论字符占用几个字节,需要 4 字节编码的字符计数仍然为 1 ）。  

此函数功能与 string.charCodeAt 函数相同，  
区别是 ustring.charCodeAt 可以兼容 UTF-16 / UTF-8 编码的字符串参数。  
而 string.charCodeAt 仅支持 UTF-8 编码的字符串参数。

### ustring.cspan('字符串'u,"字符补集") <a id="ustring.cspan" href="#ustring.cspan">&#x23;</a>
查找字符补集组成的开始标记长度。  
即所有不在指定字符集中的字符所占字节长度。

### ustring.eachIndexOf('字符串'u,'查找文本'u) <a id="ustring.eachIndexOf" href="#ustring.eachIndexOf">&#x23;</a>

```aardio
for i,j in ustring.eachIndexOf(str,'/*查找文本*/'u){

}
```

### ustring.format('%s'u,) <a id="ustring.format" href="#ustring.format">&#x23;</a>
格式化字符串

### ustring.fromCharCode() <a id="ustring.fromCharCode" href="#ustring.fromCharCode">&#x23;</a>
使用1个或多个 Unicode 码点转换为 UTF-16 字符串（ustring）。  
参数可以指定 1 个或多个 Unicode 码点（ char's code point ）,也可以直接指定一个包含多个码点的数组参数。  
支持大于 0x10000 的码点。

### ustring.indexAny('字符串'u,'查找字符集'u) <a id="ustring.indexAny" href="#ustring.indexAny">&#x23;</a>
查找字符集中任意字符出现位置。

### ustring.indexOf('字符串'u,'查找文本'u,开始索引) <a id="ustring.indexOf" href="#ustring.indexOf">&#x23;</a>
查找匹配文本,成功返回开始与结束字符位置。  
不支持模式语法。

### ustring.isPrintable(字符串) <a id="ustring.isPrintable" href="#ustring.isPrintable">&#x23;</a>
参数 @1 指定的 UTF-16 或 UTF-8 字符串包含的所有字符是否都是可打印文本。  
可打印文本指的是可作为文本输出，且输出时占位。  
如果包含其他二进制字符或零宽字符则返回 false。  

如果可以确定输入字符串是 UTF-8 编码则改用 string.escape 检测（对其返回值取反）会更快。

### ustring.isPrintableChar(字符代码) <a id="ustring.isPrintableChar" href="#ustring.isPrintableChar">&#x23;</a>
参数 @1 是否表示可打印的字符代码（字节码或 Unicode 码点）。

### ustring.isSpace(字符代码) <a id="ustring.isSpace" href="#ustring.isSpace">&#x23;</a>
参数 @1 是否空白字符代码（字节码或 Unicode 码点）。  
如果仅检测 ASCII 空白字符，可使用模式匹配表达式 `%s` 检测。

### ustring.lastIndexAny('字符串'u,'查找字符集'u) <a id="ustring.lastIndexAny" href="#ustring.lastIndexAny">&#x23;</a>
自后向前查找字符集中任意字符出现位置。

### ustring.lastIndexOf('字符串'u,'查找文本'u) <a id="ustring.lastIndexOf" href="#ustring.lastIndexOf">&#x23;</a>
在字符串尾部查找匹配文本。  
不支持模式语法。

### ustring.left(str,n) <a id="ustring.left" href="#ustring.left">&#x23;</a>
从字符串左侧截取 n 个字符  
按字符计数，汉字为一个字符。

### ustring.len('字符串'u) <a id="ustring.len" href="#ustring.len">&#x23;</a>
计算文本字符串的字符数。  
如果字符串内包含文本终止符```'\u0000'```，则计数到该字节前停止。

### ustring.reverse('字符串'u) <a id="ustring.reverse" href="#ustring.reverse">&#x23;</a>
反转字符串

### ustring.right(str,n ) <a id="ustring.right" href="#ustring.right">&#x23;</a>
从字符串右侧截取 n 个字符  
按字符计数，汉字为一个字符。

### ustring.slice(str,i,j ) <a id="ustring.slice" href="#ustring.slice">&#x23;</a>
从字符串中截取位置 i 开始的字符串。  
如果 i 为负数则从右侧倒数计数，  
按字符计数，汉字为一个字符。

### ustring.span('字符串'u,'查找字符集'u) <a id="ustring.span" href="#ustring.span">&#x23;</a>
返回字符串开始在指定字符集中的字符所占字节长度

### ustring.split('字符串'u,'分隔符'u,拆分次数) <a id="ustring.split" href="#ustring.split">&#x23;</a>
拆分为数组。  
分隔符为可选参数，默认为空白字符。  
拆分次数为可选参数，负数指定最后拆分次数，其他分组保持不变。

### ustring.toCharCodes(字符串,开始位置,结束位置) <a id="ustring.toCharCodes" href="#ustring.toCharCodes">&#x23;</a>
返回一个数组，包含每个字符的 Unicode 码点（ char's code points ）。  
Unicode 代理对字符转换为大于 0x10000 的 Unicode 码点。  
参数@1如果未标记为UTF16编码,会自动转换为 UTF-16 字符串（ustring）@2  
其他参数可省略。  

开始位置、结束位置按 UTF16 编码字符计数（每字符占2个字节）。  
可以使用负数表示尾部倒计数字符位置

### ustring.tokenize('字符串'u,"任意个分隔符") <a id="ustring.tokenize" href="#ustring.tokenize">&#x23;</a>

```aardio
for(tok in ustring.tokenize(,'/*分隔符,默认为空白字符*/'u)){
	console.log( tok );
}
```

### ustring.trim('字符串'u,"字符集") <a id="ustring.trim" href="#ustring.trim">&#x23;</a>
清除头尾在指定字符集中的字符。  
参数 @2 可选,默认为空白字符。

### ustring.trimleft('字符串'u,"字符集") <a id="ustring.trimleft" href="#ustring.trimleft">&#x23;</a>
清除头部在指定字符集中的字符。  
参数 @2 可选,默认为空白字符。

### ustring.trimright('字符串'u,"字符集") <a id="ustring.trimright" href="#ustring.trimright">&#x23;</a>
清除尾部在指定字符集中的字符。  
参数 @2 可选,默认为空白字符。

### ustring.unpackCharCodes(字符串,开始位置,结束位置) <a id="ustring.unpackCharCodes" href="#ustring.unpackCharCodes">&#x23;</a>
返回每个字符的 Unicode 码点（ char's code point ）。  
参数 @1 如果未标记为 UTF16 编码,会自动转换为 UTF-16 字符串（ustring）。  
其他参数可省略  

开始位置、结束位置按 UTF16 编码字符计数（每字符占2个字节）  
参数 @2,@3 可以使用负数表示尾部倒计数字符位置
