- 图示
- 不改变源字符串:
- 出现版本
- ES1
- `charCodeAt()[ES1.2] / concat()[ES1.2] / fixed()[ES1] / fontcolor()[ES1] / fontsize()[ES1] / fromCharCode()[ES1.2] / substr()[ES1] / toString()[ES1] / match()[ES1.2] / indexOf()[ES1] / lastIndexOf()[ES1] / replace()[ES1.2] / replaceAll()[ES1.2]`
- ` search()[ES1.2] / slice()[ES1] / split()[ES1.1] / substring()[ES1] / toLocaleLowerCase()[ES1] / toLocaleUpperCase()[ES1] / toLowerCase()[ES1] / toUpperCase()[ES1]`
- ES5
- ES6
- 1、`replace()`
- 2、`replaceAll()`
- 3、`substring()`
- 4、`indexOf()[ES1.0]`
- 5、 `lastIndexOf()[ES1.0]`
- 6、`includes()`
- 7、`match()`
- 8、`search()`
- 9、`startsWith()`
- 10、`endsWith()`
- 11、`slice()`
- 12、`split()`
- 13、`trim()`
- 14、`toLocaleLowerCase()`
- 15、`toLocaleUpperCase()`
- 16、`toLocaleUpperCase()`
- 17、`repeat()`
- 18、`substr()`
图示
不改变源字符串:
concat / substr / replace / replaceAll / split / trim / toLocaleLowerCase / toLocaleUpperCase / toLowerCase / toUpperCase
出现版本
ES1
charCodeAt()[ES1.2] / concat()[ES1.2] / fixed()[ES1] / fontcolor()[ES1] / fontsize()[ES1] / fromCharCode()[ES1.2] / substr()[ES1] / toString()[ES1] / match()[ES1.2] / indexOf()[ES1] / lastIndexOf()[ES1] / replace()[ES1.2] / replaceAll()[ES1.2]
search()[ES1.2] / slice()[ES1] / split()[ES1.1] / substring()[ES1] / toLocaleLowerCase()[ES1] / toLocaleUpperCase()[ES1] / toLowerCase()[ES1] / toUpperCase()[ES1]
ES5
trim
ES6
startsWith / endsWith / includes / repeat
1、replace()
[ES1.2]
定义和用法:
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
注意:该方法不改变原字符串。
string.replace(searchvalue,newvalue)
参数值
参数 | 描述 |
---|---|
searchvalue | 必须。规定子字符串或要替换的模式的 RegExp 对象。如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。 |
newvalue | 必需。一个字符串值。规定了替换文本或生成替换文本的函数。 |
实例
var str="Visit Microsoft! Visit Microsoft!";
var n=str.replace("Microsoft","Runoob"); // Visit Runoob!Visit Microsoft!
var str="Mr Blue has a blue house and a blue car";
var n=str.replace(/blue/g,"red"); // Mr Blue has a red house and a red car
var str="Mr Blue has a blue house and a blue car";
var n=str.replace(/blue/gi, "red"); // Mr red has a red house and a red car
// 在本例中,我们通过 prototype 为 JavaScript 的 String 对象添加方法,来实现将所有 "Microsoft" 替换为 "Runoob":
String.prototype.replaceAll = function(search, replacement) {
var target = this;
return target.replace(new RegExp(search, 'g'), replacement);
};
var str = 'Visit Microsoft!Visit Microsoft!Visit Microsoft!'
var n=str.replaceAll("Microsoft","Runoob"); // Visit Runoob!Visit Runoob!Visit Runoob!
2、replaceAll()
[ES1.2]
定义和用法:
replaceAll() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串,该函数会替换所有匹配到的子字符串。
注意:该方法不改变原字符串。
str.replaceAll(regexp|substr, newSubstr|function)
参数值
参数 | 描述 |
---|---|
regexp/substr | 必须。规定子字符串或要替换的模式的 RegExp 对象。请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。当使用一个 regex 时,您必须设置全局(“g”)标志, 否则,它将引发 TypeError:“必须使用全局 RegExp 调用 replaceAll”。 |
newSubstr/function | 必需。一个字符串值。规定了替换文本或生成替换文本的函数。 |
实例
var str="Visit Microsoft! Visit Microsoft!";
var n=str.replaceAll("Microsoft","Runoob"); // Visit Runoob!Visit Runoob!
var str="Mr Blue has a blue house and a blue car";
var n=str.replaceAll(/blue/ig,"red"); // Mr red has a red house and a red car.
3、substring()
[ES1.0]
定义和用法:
substring() 方法用于提取字符串中介于两个指定下标之间的字符。substring() 方法返回的子串包括 开始 处的字符,但不包括 结束 处的字符。
string.substring(from, to)
参数值
参数 | 描述 |
---|---|
from | 必需。一个非负的整数,规定要提取的子串的第一个字符在 string Object 中的位置。 |
to | 可选。一个非负的整数,比要提取的子串的最后一个字符在 string Object 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。 |
实例
var str="Hello world!";
let n1 = str.substring(3) // lo world!
let n2 = str.substring(3,7) // lo w
4、indexOf()[ES1.0]
5、 lastIndexOf()[ES1.0]
6、includes()
[ES6]
定义和用法:
includes() 方法用于判断字符串是否包含指定的子字符串。如果找到匹配的字符串则返回 true,否则返回 false。
注意: includes() 方法区分大小写。
string.includes(searchvalue, start)
参数值
参数 | 描述 |
---|---|
searchvalue | 必需,要查找的字符串。 |
start | 可选,设置从那个位置开始查找,默认为 0。 |
实例
var str = "Hello world, welcome to the Runoob。";
var n = str.includes("Runoob"); // true
从第 12 个索引位置开始查找字符串:
var str = "Hello world, welcome to the Runoob.";
var n = str.includes("world", 12); // false
7、match()
[ES1.2]
定义和用法:
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
注意
: match() 方法将检索字符串 String Object,以找到一个或多个与 regexp 匹配的文本。这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g。如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。
string.match(regexp)
参数值
参数 | 描述 |
---|---|
regexp | 必需。规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象。 |
实例
var str="The rain in SPAIN stays mainly in the plain";
var n=str.match(/ain/g);
console.log(n); // ["ain", "ain", "ain"]
var str="The rain in SPAIN stays mainly in the plain";
var n=str.match(/ain/gi);
console.log(n); // ["ain", "AIN", "ain", "ain"]
涉及的知识点:
正则表达式修饰符
修饰符用于执行区分大小写和全局匹配:
参数 | 描述 |
---|---|
i | 执行对大小写不敏感的匹配。 |
g | 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 |
m | 执行多行匹配。 |
8、search()
[ES1.2]
定义和用法:
search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串,则返回 -1。
string.search(searchvalue)
参数值
参数 | 描述 |
---|---|
searchvalue | 必须。查找的字符串或者正则表达式。 |
实例
var str="Mr. Blue has a blue house";
document.write(str.search("blue")); // 15
var str="Mr. Blue has a blue house";
document.write(str.search(/blue/i)); // 4
9、startsWith()
[ES6]
定义和用法:
startsWith() 方法用于检测字符串是否以指定的子字符串开始。如果是以指定的子字符串开头返回 true,否则 false。
startsWith() 方法对大小写敏感。
string.startsWith(searchvalue, start)
参数值
参数 | 描述 |
---|---|
searchvalue | 必须。要查找的字符串。 |
start | 可选,查找的开始位置,默认为 0。 |
实例
var str = "Hello world, welcome to the Runoob.";
var n = str.startsWith("world"); // false
var str = "Hello world, welcome to the Runoob.";
var n = str.startsWith("world", 6); // true
10、endsWith()
[ES6]
定义和用法:
endsWith() 方法用来判断当前字符串是否是以指定的子字符串结尾的(区分大小写)。如果传入的子字符串在搜索字符串的末尾则返回 true,否则将返回 false。
endsWith() 方法对大小写敏感。
string.endsWith(searchvalue, length)
参数值
参数 | 描述 |
---|---|
searchvalue | 必需,要搜索的子字符串。 |
length | 设置字符串的长度。默认值为原始字符串长度 string.length。 |
实例
let str = "To be, or not to be, that is the question.";
str.endsWith("question."); // true
str.endsWith("to be"); // false
str.endsWith("to be", 19); // true
11、slice()
[ES1.0]
定义和用法:
slice(start, end) 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
使用 start(包含) 和 end(不包含) 参数来指定字符串提取的部分。
start 参数字符串中第一个字符位置为 0, 第二个字符位置为 1, 以此类推,如果是负数表示从尾部截取多少个字符串,slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。
end 参数如果为负数,-1 指字符串的最后一个字符的位置,-2 指倒数第二个字符,以此类推。
string.slice(start,end)
参数值
参数 | 描述 |
---|---|
start | 必须。 要抽取的片断的起始下标,第一个字符位置为 0。如果为负数,则从尾部开始截取。 |
end | 可选。 紧接着要截取的片段结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。 |
实例
var str="Hello world!";
var n=str.slice(0); // Hello world!
// 从字符串的第3个位置提取字符串片段:
var str="Hello world!";
var n=str.slice(3); // lo world!
// 从字符串的第3个位置到第8个位置直接的字符串片段:
var str="Hello world!";
var n=str.slice(3,8); // lo wo
// 提取最后一个字符和最后两个字符:
var str="Hello world!";
var n=str.slice(-1); // !
var n2=str.slice(-2); // d!
12、split()
[ES1.1]
定义和用法:
split() 方法用于把一个字符串分割成字符串数组。
提示: 如果把空字符串 (“”) 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
注意: split() 方法不改变原字符串。
string.split(separator,limit)
参数值
参数 | 描述 |
---|---|
separator | 可选。字符串或正则表达式,从该参数指定的地方分割 string Object。 |
end | 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。 |
实例
var str="How are you doing today?";
var n=str.split(" "); // ["How", "are", "you", "doing", "today?"]
var str="How are you doing today?";
var n=str.split(); // ["How are you doing today?"]
var str="How are you doing today?";
var n=str.split(""); // ["H", "o", "w", " ", "a", "r", "e", " ", "y", "o", "u", " ", "d", "o", "i", "n", "g", " ", "t", "o", "d", "a", "y", "?"]
var str="How are you doing today?";
var n=str.split("o"); // ["H", "w are y", "u d", "ing t", "day?"]
// 使用 limit 参数:
var str="How are you doing today?";
var n=str.split(" ",3); // ["How", "are", "you"]
13、trim()
[ES5]
定义和用法:
trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。
startsWith() 方法不改变原字符串。
startsWith() 方法不适用于 null, undefined, Number 类型。
string.trim()
实例
var str = " Runoob ";
alert(str.trim()); // Runoob
14、toLocaleLowerCase()
[ES1]
定义和用法:
toLocaleLowerCase() 方法根据本地主机的语言环境把字符串转换为小写。本地是根据浏览器的语言设置来判断的。
通常,该方法与 toLowerCase() 方法返回的结果相同,只有几种语言(如土耳其语)具有地方特有的大小写映射。
toLocaleLowerCase() 方法不改变原字符串。
string.toLocaleLowerCase()
实例
var str = "Runoob";
var res = str.toLocaleLowerCase(); // runoob
15、toLocaleUpperCase()
[ES1]
定义和用法:
toLocaleUpperCase() 方法根据本地主机的语言环境把字符串转换为大写。本地是根据浏览器的语言设置来判断的。
通常,该方法与 toUpperCase() 方法返回的结果相同,只有几种语言(如土耳其语)具有地方特有的大小写映射。。
toLocaleUpperCase() 方法不改变原字符串。
string.toLocaleUpperCase()
实例
var str = "Runoob";
var res = str.toLocaleUpperCase(); // RUNOOB
16、toLocaleUpperCase()
[ES1]
定义和用法:
toLocaleUpperCase() 方法根据本地主机的语言环境把字符串转换为大写。本地是根据浏览器的语言设置来判断的。
通常,该方法与 toUpperCase() 方法返回的结果相同,只有几种语言(如土耳其语)具有地方特有的大小写映射。。
toLocaleUpperCase() 方法不改变原字符串。
string.toLocaleUpperCase()
实例
var str = "Runoob";
var res = str.toLocaleUpperCase(); // RUNOOB
17、repeat()
[ES6]
定义和用法:
repeat() 方法字符串复制指定次数。
string.repeat(count)
实例
var str = "Runoob";
str.repeat(2); // RunoobRunoob
18、substr()
[ES1]
定义和用法:
substr() 方法字符串复制指定次数。
substr() 方法可在字符串中抽取从 开始 下标开始的指定数目的字符。
提示: substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。
在 IE 4 中,参数 start 的值无效。在这个 BUG 中,start 规定的是第 0 个字符的位置。在之后的版本中,此 BUG 已被修正。
ECMAscript 没有对该方法进行标准化,因此反对使用它!!!
注意: substr() 方法不改变原字符串。
string.substr(start,length)
参数值
参数 | 描述 |
---|---|
start | 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。 |
length | 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。 |
实例
var str="Hello world!";
var n=str.substr(2) // llo world!