# String字符串

## 概述

字符串相关函数

## upper

将字符串的所有字母变成大写字母

```javascript
String.upper(s)
```

| 参数 | 类型     | 描述       |
|----|--------|----------|
| s  | `String` | 需要转换的字符串 |

**返回值**

类型 `String`
大写的字符串，如果s为空则返回null

**示例**

```javascript
String.upper(1); //1
String.upper('Informat织信'); //INFORMAT织信
String.upper('abc'); //ABC
String.upper('aBC'); //ABC
String.upper(null); //null
```

## lower

将字符串的所有字母变成小写字母

```javascript
String.lower(s)
```

| 参数 | 类型     | 描述       |
|----|--------|----------|
| s  | `String` | 需要转换的字符串 |

**返回值**

类型 `String`
转换后的小写的字符串，如果s为空则返回null

**示例**

```javascript
String.lower(1); //1
String.lower('Informat织信'); //informat织信
String.lower('ABC'); //abc
String.lower('aBC'); //abc
String.lower(null); //null
```

## concat

将多个对象合并为一个字符串

```javascript
String.concat(s1, s2, s3 ...)
```

| 参数 | 类型     | 描述      |
|----|--------|---------|
| s1 | `String` | 要拼接的对象 |
| s2 | `String` | 要拼接的对象 |

**返回值**

类型 `String`
拼接后的字符串

**示例**

```javascript
String.concat('Informat', '织信'); //Informat织信
String.concat('Informat', 1, '2'); //Informat1
String.concat('Informat', true); //Informattrue
String.concat('Informat', null); //Informat
String.concat(null, '织信'); //织信
String.concat(null, null); //null
```

## lpad

在字符串 s1 的开始处填充字符串 s2，使字符串长度达到 len

```javascript
String.lpad(s1, len, s2)
```

| 参数  | 类型      | 描述      |
|-----|---------|---------|
| s1  | `String`  | 要拼接的字符串 |
| s2  | `String`  | 重复的字符   |
| len | `Integer` | 总长度     |

**返回值**

类型 `String`
拼接后的字符串

**示例**

```javascript
String.lpad(1, 3, 0); //001
String.lpad('ABC', 6, 0); //000ABC
String.lpad('ABC', 6, '_'); //___ABC
String.lpad('ABC', 6, null); //ABC
String.lpad('ABC', 2, '0'); //ABC
String.lpad('ABC', null, 0); //ABC
String.lpad(null, 2, null); //null
String.lpad(null, null, null); //null
```

## rpad

在字符串 s1 的结尾处填充字符串 s2，使字符串长度达到 len

```javascript
String.rpad(s1, len, s2)
```

| 参数  | 类型      | 描述      |
|-----|---------|---------|
| s1  | `String`  | 要拼接的字符串 |
| s2  | `String`  | 重复的字符   |
| len | `Integer` | 总长度     |

**返回值**

类型 `String`
拼接后的字符串

**示例**

```javascript
String.rpad(1, 3, 0); //100
String.rpad('ABC', 6, 0); //ABC000
String.rpad('ABC', 6, '_'); //ABC___
String.rpad('ABC', 6, null); //ABC
String.rpad('ABC', 2, '0'); //ABC
String.rpad('ABC', null, 0); //ABC
String.rpad(null, 2, null); //null
String.rpad(null, null, null); //null
```

## trim

移除字符串 s 的左右的所有空白字符

```javascript
String.trim(s)
```

| 参数 | 类型     | 描述      |
|----|--------|---------|
| s  | `String` | 要处理的字符串 |

**返回值**

类型 `String`
去除空白字符后的字符串

**示例**

```javascript
String.trim(' abc '); //abc
String.trim(''); //
String.trim(null); //null
```

## replace

用字符串 s2 替代字符串 s 中第一次出现的的字符串 s1

```javascript
String.replace(s, s1, s2)
```

| 参数 | 类型     | 描述      |
|----|--------|---------|
| s  | `String` | 要处理的字符串 |
| s1 | `String` | 要替换的字串串 |
| s2 | `String` | 替换后的字符串 |

**返回值**

类型 `String`
替换了内容的字符串

**示例**

```javascript
String.replace('abca', 'a', '_'); //_bca
String.replace('abca', 'a', ''); //bca
String.replace('abca', 'a', null); //abca
String.replace('abca', null, '_'); //abca
String.replace(null, 'a', '_'); //null
String.replace(null, null, '_'); //null
String.replace(null, null, null); //null
```

## replaceAll

用字符串 s2 替代字符串 s 中出现的的字符串 s1

```javascript
String.replaceAll(s, s1, s2)
```

| 参数 | 类型     | 描述      |
|----|--------|---------|
| s  | `String` | 要处理的字符串 |
| s1 | `String` | 要替换的字串串 |
| s2 | `String` | 替换后的字符串 |

**返回值**

类型 `String`
替换了内容的字符串

**示例**

```javascript
String.replaceAll('abca', 'a', '_'); //_bc_
String.replaceAll('abca', 'a', ''); //bc
String.replaceAll('abca', 'a', null); //abca
String.replaceAll('abca', null, '_'); //abca
String.replaceAll(null, 'a', '_'); //null
String.replaceAll(null, null, '_'); //null
String.replaceAll(null, null, null); //null
```



## substr

截取从字符串s的索引位置start截取len个字符

```js
String.substr(s,start,len)
```

| 参数    | 类型      | 描述                       |
|-------|---------|--------------------------|
| s     | `String`  | 要处理的字符串                  |
| start | `Integer` | 截取开始位置。数值从0开始。null值则默认为0 |
| len   | `Integer` | 截取的长度。null值则默认为0         |

**返回值**

类型 `String`
截取获得的字符串

**示例**

```javascript
String.substr('abcd', 1, 2); //bc
String.substr('abcd', 1, 5); //bcd
String.substr('abcd', -1, 5); //abcd
String.substr('abcd', null, 5); //abcd
String.substr('abcd', 1, null); //
String.substr(null, null, 5); //null
```



## substring

截取从字符串s的开始位置start截取到结束位置end

```js
String.substring(s,start,end)
```

| 参数    | 类型      | 描述                       |
|-------|---------|--------------------------|
| s     | `String`  | 要处理的字符串                  |
| start | `Integer` | 截取开始位置。数值从0开始。null值则默认为0 |
| end   | `Integer` | 截取结束位置。数值从0开始。null值则默认为0 |

**返回值**

类型 `String`
截取获得的字符串

**示例**

```javascript
String.substring('abcd', 0, 2); //ab
String.substring('abcd', 0, 5); //abcd
String.substring('abcd', -1, 5); //abcd
String.substring('abcd', 2, 3); //c
String.substring('abcd', null, 5); //abcd
String.substring('abcd', 1, null); //
String.substring(null, null, 5); //null
```



## indexOf

获取字符串s中字符s2首次出现的位置

```js
String.indexOf(s,s2)
```

| 参数 | 类型     | 描述     |
|----|--------|--------|
| s  | `String` | 查询的字符串 |
| s2 | `String` | 字符串s2  |

**返回值**

类型 `Integer`
首次出现的位置。若s中存在字符串s2则返回从0索引位置，否则返回-1

**示例**

```javascript
String.indexOf('abcd', 'a'); //0
String.indexOf('abcad', 'a'); //0
String.indexOf('abcd', 'cd'); //2
String.indexOf('abcd', 'g'); //-1
String.indexOf('abcd', null); //-1
String.indexOf(null, 'a'); //-1
String.indexOf(null, null); //-1
```



## lastIndexOf

获取字符串s中字符s2最后次出现的位置

```js
String.lastIndexOf(s,s2)
```

| 参数 | 类型     | 描述     |
|----|--------|--------|
| s  | `String` | 查询的字符串 |
| s2 | `String` | 字符串s2  |

**返回值**

类型 `Integer`
最后次出现的位置。若s中存在字符串s2则返回从0索引位置，否则返回-1

**示例**

```javascript
String.lastIndexOf('abcd', 'a'); //0
String.lastIndexOf('abcad', 'a'); //3
String.lastIndexOf('abcd', 'cd'); //2
String.lastIndexOf('abcd', 'g'); //-1
String.lastIndexOf('abcd', null); //-1
String.lastIndexOf(null, 'a'); //-1
String.lastIndexOf(null, null); //-1
```



## contains

判定字符串s中是否包含字符s2

```js
String.contains(s,s2)
```

| 参数 | 类型     | 描述     |
|----|--------|--------|
| s  | `String` | 查询的字符串 |
| s2 | `String` | 字符串s2  |

**返回值**

类型 `Boolean`
是否包含

**示例**

```javascript
String.contains('abcd', 'a'); //true
String.contains('abcad', 'a'); //true
String.contains('abcd', 'cd'); //true
String.contains('abcd', 'g'); //false
String.contains('abcd', null); //false
String.contains(null, 'a'); //false
String.contains(null, null); //false
```



## length

获取字符串s的长度

```js
String.length(s)
```

| 参数  | 类型     | 描述     |
|-----|--------|--------|
| s   | `String` | 查询的字符串 |

**返回值**

类型 `Integer`
字符串长度

**示例**

```javascript
String.length('abcd'); //4
String.length('abcd中文'); //6
String.length(null); //0
```



## startsWith

判定字符串s中是否以字符s2开头

```js
String.startsWith(s, s2)
```

| 参数 | 类型     | 描述     |
|----|--------|--------|
| s  | `String` | 查询的字符串 |
| s2 | `String` | 字符串s2  |

**返回值**

类型 `Boolean`

**示例**

```javascript
String.startsWith('abcd', 'a'); //true
String.startsWith('abcad', 'bc'); //false
String.startsWith('abcad', 'g'); //false
String.startsWith('abcad', ''); //true
String.startsWith('', ''); //true
String.startsWith(null, 'a'); //false
String.startsWith(null, null); //false
```



## endsWith

判定字符串s中是否以字符s2结尾

```js
String.endsWith(s,s2)
```

| 参数 | 类型     | 描述     |
|----|--------|--------|
| s  | `String` | 查询的字符串 |
| s2 | `String` | 字符串s2  |

**返回值**

类型 `Boolean`

**示例**

```javascript
String.endsWith('abcd', 'a'); //false
String.endsWith('abcad', 'bc'); //false
String.endsWith('abcad', 'g'); //false
String.endsWith('abcad', ''); //true
String.endsWith('', ''); //true
String.endsWith(null, 'a'); //false
String.endsWith(null, null); //false
```



## match

使用正则表达式regex验证input是否符合要求

```js
String.match(regex,input)
```

| 参数    | 类型     | 描述                       |
|-------|--------|--------------------------|
| regex | `String` | 正则内容.暂不支持`\w`,`\d`等已`\`开头的正则简写 |
| input | `String` | 匹配的内容                    |

**返回值**

类型 `Boolean`

**示例**

```javascript
String.match('^[a-z]+', 'abcd'); //true
String.match('[^a-z]+', 'abcd'); //false
String.match('[^a-z][a-zA-Z0-9]*', '123abcd'); //true
String.match('^[a-z]+', 'abcd123'); //false
String.match('^[a-z]*', 'abc123'); //false
String.match('^a[a-zA-Z0-9]*', 'abc123'); //true
String.match('[a-zA-Z0-9]*[0-9]$', 'abc123'); //true
String.match('^"[a-zA-Z0-9]*', '"abc123'); //true
String.match(null, 'a'); //false
String.match(null, null); //false
```



## isEmpty

判断输入字符串 s 是否为空

```js
String.isEmpty(s)
```

| 参数 | 类型     | 描述                  |
|----|--------|---------------------|
| s  | `String` | 输入内容。系统会自动移除字符串首位空格 |

**返回值**

类型 `Boolean`

**示例**

```javascript
String.isEmpty(' a '); //false
String.isEmpty(''); //true
String.isEmpty(' '); //true
String.isEmpty(null); //true
```
## isNotEmpty

判断输入字符串 s 是否不为空

```js
String.isNotEmpty(s)
```

| 参数 | 类型     | 描述                  |
|----|--------|---------------------|
| s  | `String` | 输入内容。系统会自动移除字符串首位空格 |

**返回值**

类型 `Boolean`

**示例**

```javascript
String.isNotEmpty(' a '); //true
String.isNotEmpty(''); //false
String.isNotEmpty(' '); //false
String.isNotEmpty(null); //false
```

## html2text

将字符串 s 的html内容转换为文本内容。此过程会使用xss过滤器过滤内容后输出

```js
String.html2text(s)
```

| 参数 | 类型     | 描述   |
|----|--------|------|
| s  | `String` | 输入内容 |

**返回值**

类型 `String`

**示例**

```javascript
String.html2text("<div>示例数据，<strong>织信</strong>，<a href='https://www.informat.cn'>点击查看</a></div>"); //示例数据，织信，点击查看
String.html2text("<div>示例数据，<script>alert('织信')</script>，<a href='https://www.informat.com'>点击查看</a></div>"); //示例数据，<script>alert('织信')</script>，点击查看
String.html2text(''); //''
String.html2text(' '); //' '
String.html2text(null); //null
```
