JavaScript - String 方法

图示

string方法图示

不改变源字符串:

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!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值