# String

String 全局对象是一个用于字符串或一个字符序列的构造函数。

字符串字面量采取以下形式:

'string text'
"string text"
"中文/汉语"
"español"
"English "
"हिन्दी"
"العربية"
"português"
"বাংলা"
"русский"
"日本語"
"ਪੰਜਾਬੀ"
"한국어"

# 实例属性

# length

返回字符串的 UTF-16 码元长度。

const x = "Mozilla";
const empty = "";

console.log("Mozilla is " + x.length + " code units long");
/* "Mozilla is 7 code units long" */

console.log("The empty string is has a length of " + empty.length);
/* "The empty string is has a length of 0" */

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# 实例方法

# includes(searchString, position?)

如果 searchString 作为此对象转换为 String 的结果的子字符串出现在大于或等于position的一个或多个位置,则返回 true;否则,返回 false。

Parameters

name type required description
searchString string YES 要在 str 中搜索的字符串。不能是正则表达式。
position number NO 在字符串中开始搜索 searchString 的位置。(默认为 0。)

Return value

Type description
boolean 如果在给定的字符串中找到了要搜索的字符串(包括 searchString 为空字符串的情况),则返回 true,否则返回 false。
const str = 'To be, or not to be, that is the question.';

console.log(str.includes('To be'));       // true
console.log(str.includes('question'));    // true
console.log(str.includes('nonexistent')); // false
console.log(str.includes('To be', 1));    // false
console.log(str.includes('TO BE'));       // false

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# endsWith(searchString, endPosition?)

endsWith() 方法用于判断一个字符串是否以指定字符串结尾,如果是则返回 true,否则返回 false。该方法区分大小写。

Parameters

name type required description
searchString string YES 要搜索的作为结尾的字符串,不能是正则表达式。所有非正则表达式的值都会被强制转换为字符串,因此如果该参数被省略或传入 undefined,endsWith() 方法会在字符串中搜索 "undefined",这通常不是你想要的。
endPosition number NO 可选,预期找到 searchString 的末尾位置(即 searchString 最后一个字符的索引加 1)。默认为 str.length。

Return value

Type description
boolean 如果被检索字符串的末尾出现了指定的字符串(包括 searchString 为空字符串的情况),则返回 true;否则返回 false。
const str1 = 'Cats are the best!';
console.log(str1.endsWith('best!'));
// expected output: true
console.log(str1.endsWith('best', 17));
// expected output: true
const str2 = 'Is this a question?';
console.log(str2.endsWith('question'));
// expected output: false

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# repeat(count)

repeat() 构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。

Parameters

name type required description
count number YES 介于 0 和 +Infinity 之间的整数。表示在新构造的字符串中重复了多少遍原字符串。

Return value

Type description
string 包含指定字符串的指定数量副本的新字符串。
"abc".repeat(0)      // ""
"abc".repeat(1)      // "abc"
"abc".repeat(2)      // "abcabc"
"abc".repeat(3.5)    // "abcabcabc" 参数 count 将会被自动转换成整数。

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# startsWith(searchString, position?)

startsWith() 方法用来判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 true 或 false。这个方法区分大小写。

Parameters

name type required description
searchString string YES 要搜索的子字符串。
position number NO 在 str 中搜索 searchString 的开始位置,默认值为 0。

Return value

Type description
boolean 如果在字符串的开头找到了给定的字符则返回 true;否则返回 false。

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# at(index)

方法接受一个整数值,并返回一个新的 String,该字符串由位于指定偏移量处的单个 UTF-16 码元组成

Parameters

name type required description
index number YES 字符指定偏移量处,允许正整数和负整数,负整数从字符串中的最后一个字符开始倒数。

Return value

Type
string
const sentence = 'The quick brown fox jumps over the lazy dog.';
let index = 5;
console.log(`Using an index of ${index} the character returned is ${sentence.at(index)}`);
// expected output: "Using an index of 5 the character returned is u"
index = -4;
console.log(`Using an index of ${index} the character returned is ${sentence.at(index)}`);
// expected output: "Using an index of -4 the character returned is d"

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# charAt(pos)

返回一个由给定索引处的单个 UTF-16 码元构成的新字符串。

Parameters

name type required description
pos number YES 要返回的字符的索引,从零开始。

Return value

Type description
string 返回一个字符串,该字符串表示指定 index 处的字符(恰好是一个 UTF-16 码元)。如果 index 超出了 0 – str.length - 1 的范围,charAt() 将返回一个空字符串。
const anyString = "Brave new world";

console.log("The character at index 0   is '" + anyString.charAt(0)   + "'");
// The character at index 0 is 'B'
console.log("The character at index 1   is '" + anyString.charAt(1)   + "'");
// The character at index 1 is 'r'
console.log("The character at index 2   is '" + anyString.charAt(2)   + "'");
// The character at index 2 is 'a'
console.log("The character at index 3   is '" + anyString.charAt(3)   + "'");
// The character at index 3 is 'v'
console.log("The character at index 4   is '" + anyString.charAt(4)   + "'");
// The character at index 4 is 'e'
console.log("The character at index 999 is '" + anyString.charAt(999) + "'");
// The character at index 999 is ''

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# charCodeAt(index)

返回 0 到 65535 之间的整数,表示给定索引处的 UTF-16 代码单元

Parameters

name type required description
index number YES 一个大于等于 0,小于字符串长度的整数。如果不是一个数值,则默认为 0。

Return value

Type description
number 指定 index 处字符的 UTF-16 代码单元值的一个数字;如果 index 超出范围,charCodeAt() 返回 NaN。
const sentence = 'The quick brown fox jumps over the lazy dog.';
const index = 4;
console.log(`The character code ${sentence.charCodeAt(index)} is equal to ${sentence.charAt(index)}`);
// expected output: "The character code 113 is equal to q"

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# concat(strings)

将字符串参数连接到调用的字符串,并返回一个新的字符串。

Parameters

name type required description
strings string[] YES T要连接到 str 的一个或多个字符串。

Return value

Type description
string 一个包含所提供的多个字符串文本组合的新字符串。
let hello = 'Hello, '
console.log(hello.concat('Kevin', '. Have a nice day.'))
// Hello, Kevin. Have a nice day.

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# indexOf(searchString, position?)

在字符串中搜索指定子字符串,并返回其第一次出现的位置索引。它可以接受一个可选的参数指定搜索的起始位置,如果找到了指定的子字符串,则返回的位置索引大于或等于指定的数字。

Parameters

name type required description
searchString string YES 要搜索的子字符串。
position number NO 该方法返回指定子字符串在大于或等于 position 位置的第一次出现的索引,默认为 0。如果 position 大于调用字符串的长度,则该方法根本不搜索调用字符串。如果 position 小于零,该方法的行为就像 position 为 0 时一样。

Return value

Type description
number 查找的字符串 searchValue 的第一次出现的索引,如果没有找到,则返回 -1。
const paragraph = 'The quick brown fox jumps over the lazy dog. If the dog barked, was it really lazy?';

const searchTerm = 'dog';
const indexOfFirst = paragraph.indexOf(searchTerm);

console.log(`The index of the first "${searchTerm}" from the beginning is ${indexOfFirst}`);
// expected output: "The index of the first "dog" from the beginning is 40"

console.log(`The index of the 2nd "${searchTerm}" is ${paragraph.indexOf(searchTerm, (indexOfFirst + 1))}`);
// expected output: "The index of the 2nd "dog" is 52"

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# padEnd

padEnd() 方法会用一个字符串填充当前字符串(如果需要的话则重复填充),返回填充后达到指定长度的字符串。从当前字符串的末尾(右侧)开始填充。

平台差异说明

JavaScript Kotlin Swift
(3.6.11+)
const str1 = 'Breaded Mushrooms';
console.log(str1.padEnd(25, '.'));
// expected output: "Breaded Mushrooms........"
const str2 = '200';
console.log(str2.padEnd(5));
// expected output: "200  "

# padStart

padStart() 方法用另一个字符串填充当前字符串 (如果需要的话,会重复多次),以便产生的字符串达到给定的长度。从当前字符串的左侧开始填充。

平台差异说明

JavaScript Kotlin Swift
(3.6.11+)
const str1 = '5';
console.log(str1.padStart(2, '0'));
// expected output: "05"

# lastIndexOf(searchString, position?)

搜索该字符串并返回指定子字符串最后一次出现的索引。它可以接受一个可选的起始位置参数,并返回指定子字符串在小于或等于指定数字的索引中的最后一次出现的位置。

Parameters

name type required description
searchString string YES 要搜索的子字符串。
position number NO 该方法返回指定子字符串在小于或等于 position 的位置中的最后一次出现的索引,默认为 +Infinity。如果 position 大于调用字符串的长度,则该方法将搜索整个字符串。如果 position 小于 0,则行为与 0 相同,即该方法只在索引 0 处查找指定的子字符串。

Return value

Type description
number 如果找到了 searchString,则返回最后一次出现的索引,否则返回 -1。

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# replace(searchValue, replaceValue)

返回一个由替换值(replacement)替换部分或所有的模式(pattern)匹配项后的新字符串。模式可以是一个字符串或者一个正则表达式。

Parameters

name type required description
searchValue string | RegExp YES RegExp: 一个RegExp 对象或者其字面量。该正则所匹配的内容会被第二个参数的返回值替换掉。string: 一个将被 newSubStr 替换的 字符串。其被视为一整个字符串,而不是一个正则表达式。仅第一个匹配项会被替换。
replaceValue string YES 用于替换掉第一个参数在原字符串中的匹配部分的字符串。

Return value

Type description
string 一个部分或全部匹配由替代模式所取代的新的字符串。
const p = 'The quick brown fox jumps over the lazy dog. If the dog reacted, was it really lazy?';

console.log(p.replace('dog', 'monkey'));
// expected output: "The quick brown fox jumps over the lazy monkey. If the dog reacted, was it really lazy?"
const regex = /Dog/i;
console.log(p.replace(regex, 'ferret'));
// expected output: "The quick brown fox jumps over the lazy ferret. If the dog reacted, was it really lazy?"

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# replace(searchValue, replacer)

返回一个由替换值(replacement)替换部分或所有的模式(pattern)匹配项后的新字符串。模式可以是一个字符串或者一个正则表达式,替换值是一个每次匹配都要调用的回调函数。如果pattern是字符串,则仅替换第一个匹配项。

Parameters

name type required description
searchValue string | RegExp YES RegExp: 一个RegExp 对象或者其字面量。该正则所匹配的内容会被第二个参数的返回值替换掉。string: 一个将被 newSubStr 替换的 字符串。其被视为一整个字符串,而不是一个正则表达式。仅第一个匹配项会被替换。
replacer (substring : string, ...args : any[]) => string YES 一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。在iOS中replacer的第二个参数是字符串数组而非可变参数。

Return value

Type description
string 一个部分或全部匹配由替代模式所取代的新的字符串。

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

search() 方法执行正则表达式和 String 对象之间的一个搜索匹配。

Parameters

name type required description
regexp string | RegExp YES 一个正则表达式(regular expression)对象。

Return value

Type description
number 如果匹配成功,则 search() 返回正则表达式在字符串中首次匹配项的索引;否则,返回 -1。
const paragraph = 'The quick brown fox jumps over the lazy dog. If the dog barked, was it really lazy?';
// any character that is not a word character or whitespace
const regex = /[^\w\s]/g;
console.log(paragraph.search(regex));
// expected output: 43
console.log(paragraph[paragraph.search(regex)]);
// expected output: "."

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# slice(start?, end?)

slice() 方法提取某个字符串的一部分,并返回一个新的字符串,且不会改动原字符串。

Parameters

name type required description
start number NO 可选。从该索引(以 0 为基数)处开始提取原字符串中的字符。如果值为负数,会被当做 strLength + beginIndex 看待,这里的strLength 是字符串的长度(例如,如果 beginIndex 是 -3 则看作是:strLength - 3)
end number NO 可选。在该索引(以 0 为基数)处结束提取字符串。如果省略该参数,slice() 会一直提取到字符串末尾。如果该参数为负数,则被看作是 strLength + endIndex,这里的 strLength 就是字符串的长度 (例如,如果 endIndex 是 -3,则是,strLength - 3)。

Return value

Type description
string 返回一个从原字符串中提取出来的新字符串
const str = 'The quick brown fox jumps over the lazy dog.';
console.log(str.slice(31));
// expected output: "the lazy dog."
console.log(str.slice(4, 19));
// expected output: "quick brown fox"

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# split(separator, limit?)

split() 方法接受一个模式,通过搜索模式将字符串分割成一个有序的子串列表,将这些子串放入一个数组,并返回该数组。

Parameters

name type required description
separator string | RegExp YES 描述每个分割应该发生在哪里的模式。
limit number NO 一个非负整数,指定数组中包含的子字符串的数量限制。当提供此参数时,split 方法会在指定 separator 每次出现时分割该字符串,但在已经有 limit 个元素时停止分割。任何剩余的文本都不会包含在数组中。

Return value

Type description
string[] 在给定字符串中出现 separator 的每一个点上进行分割而成的字符串数组。
const str = 'The quick brown fox jumps over the lazy dog.';

const words = str.split(' ');
console.log(words[3]);
// expected output: "fox"
const chars = str.split('');
console.log(chars[8]);
// expected output: "k"

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# substring(start, end?)

返回一个字符串在开始索引到结束索引之间的一个子集,或从开始索引直到字符串的末尾的一个子集。

Parameters

name type required description
start number YES 要截取的第一个字符的索引,该索引位置的字符作为返回的字符串的首字母。
end number NO 可选。一个 0 到字符串长度之间的整数,以该数字为索引的字符不包含在截取的字符串内。

Return value

Type description
string 包含给定字符串的指定部分的新字符串。

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

bug&tips

当前版本android平台 start 与 end 参数声明为Int, 需要将number 参数转换为int

let a = 1
let b = 2
// 临时解决办法
"hello uts".substring(a.toInt(),b.toInt())

这个问题后续会修复

# toLowerCase()

toLowerCase() 会将调用该方法的字符串值转为小写形式,并返回。

Return value

Type description
string 一个新的字符串,表示转换为小写的调用字符串。
console.log('中文简体 zh-CN || zh-Hans'.toLowerCase());
// 中文简体 zh-cn || zh-hansconsole.log( "ALPHABET".toLowerCase() );
// "alphabet"

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# toUpperCase()

将调用该方法的字符串转为大写形式并返回(如果调用该方法的值不是字符串类型会被强制转换)。

Return value

Type description
string 一个新的字符串,表示转换为大写的调用字符串。
const sentence = 'The quick brown fox jumps over the lazy dog.';
console.log(sentence.toUpperCase());
// expected output: "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG."

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# trim()

从字符串的两端清除空格,返回一个新的字符串,而不修改原始字符串。此上下文中的空格是指所有的空白字符(空格、tab、不换行空格等)以及所有行终止符字符(如 LF、CR 等)。

Return value

Type description
string 一个表示 str 去掉了开头和结尾的空白字符后的新字符串。

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# padStart(targetLength, padString?)

# padEnd(targetLength, padString?)

# includes(searchString, position?)

如果 searchString 作为此对象转换为 String 的结果的子字符串出现在大于或等于position的一个或多个位置,则返回 true;否则,返回 false。

Parameters

name type required description
searchString string YES 要在 str 中搜索的字符串。不能是正则表达式。
position number NO 在字符串中开始搜索 searchString 的位置。(默认为 0。)

Return value

Type description
boolean 如果在给定的字符串中找到了要搜索的字符串(包括 searchString 为空字符串的情况),则返回 true,否则返回 false。

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# endsWith(searchString, endPosition?)

endsWith() 方法用于判断一个字符串是否以指定字符串结尾,如果是则返回 true,否则返回 false。该方法区分大小写。

Parameters

name type required description
searchString string YES 要搜索的作为结尾的字符串,不能是正则表达式。所有非正则表达式的值都会被强制转换为字符串,因此如果该参数被省略或传入 undefined,endsWith() 方法会在字符串中搜索 "undefined",这通常不是你想要的。
endPosition number NO 可选,预期找到 searchString 的末尾位置(即 searchString 最后一个字符的索引加 1)。默认为 str.length。

Return value

Type description
boolean 如果被检索字符串的末尾出现了指定的字符串(包括 searchString 为空字符串的情况),则返回 true;否则返回 false。

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# repeat(count)

repeat() 构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。

Parameters

name type required description
count number YES 介于 0 和 +Infinity 之间的整数。表示在新构造的字符串中重复了多少遍原字符串。

Return value

Type description
string 包含指定字符串的指定数量副本的新字符串。

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# startsWith(searchString, position?)

startsWith() 方法用来判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 true 或 false。这个方法区分大小写。

Parameters

name type required description
searchString string YES 要搜索的子字符串。
position number NO 在 str 中搜索 searchString 的开始位置,默认值为 0。

Return value

Type description
boolean 如果在字符串的开头找到了给定的字符则返回 true;否则返回 false。

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

# at(index)

方法接受一个整数值,并返回一个新的 String,该字符串由位于指定偏移量处的单个 UTF-16 码元组成

Parameters

name type required description
index number YES 字符指定偏移量处,允许正整数和负整数,负整数从字符串中的最后一个字符开始倒数。

Return value

Type
string

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x