[JS]String对象常见方法梳理

一、查找方法

1. match(regexp)方法

(1)参数:正则表达式(必传)(其他形式将会转换成正则表达式)ps: 字符串记得加引号。
(2)返回值:存放匹配结果的数组,无匹配结果则返回null。
(3)功能:根据正则表达式查找出匹配的值,且以数组的方式返回。

var str = "To be or not to be."; 
var m1 = str.match(/to/gi); // 当参数为正则表达式时,g为全局模式,i为忽略大小写
var m2 = str.match('to');  // 当参数为字符串时,未指定模式,默认只查找第一个匹配的'to'
console.log(m1); // 输出[ 'To', 'to' ]
console.log(m2); // 输出[ 'to', index: 13, input: 'To be or not to be.', groups: undefined ]

2. search(searchvalue)方法

(1)参数:需检索的字符串或者正则表达式(必传)。
(2)返回值:返回查找到的第一个子串的位置,未匹配到则返回-1。
ps:即使正则表达式为全局模式也只返回匹配到的第一个子串的位置。
(3)功能:用于检索与搜索值匹配的第一个子字符串的位置。

var str = "To be or not to be."; 
var s1 = str.search(/to/gi);
var s2 = str.search('to');
var s3 = str.search('my');
console.log(s1); // 输出0,尽管模式为全局模式,但只输出第一个匹配到的子串位置
console.log(s2); // 输出13
console.log(s3); // 输出-1,查找不到输出-1

3. indexOf(searchvalue, start)方法

(1)参数:第一个参数为需检索的字符串(必传),第二个参数为开始检索的位置(选传)。
(2)返回值:返回查找到的第一个子串的位置,未匹配到则返回-1。
(3)功能:查找字符串中某子串首次出现的位置。

var str = "to be or not to be."; 
var i1 = str.indexOf('to');
var i2 = str.indexOf('to', 4);
var i3 = str.indexOf('to', 14)
console.log(i1); // 输出0
console.log(i2); // 输出13,从位置4开始查找,即查找的为第二个to
console.log(i3); // 输出-1,从位置14开始查找,查找不到to

4. lastIndexOf(searchvalue, start)方法

该方法与indexOf方法类似,区别在于该方法是从后往前查找。

var str = "to be or not to be."; 
var l1 = str.lastIndexOf('to');
var l2 = str.lastIndexOf('to', 4);
var l3 = str.lastIndexOf('to', 14)
console.log(l1); // 输出13
console.log(l2); // 输出0,从位置4开始从后往前查找,即查找的为第一个to
console.log(l3); // 输出13,从位置14开始从后往前查找,即查找的为第二个to

5. includes(searchvalue, start)方法

该方法用来判断字符串是否包含某字符串。与indexOf方法类似,区别在于返回值为Boolean类型。

var str = "to be or not to be."; 
var in1 = str.includes('to');
var in2 = str.includes('to', 4);
var in3 = str.includes('to', 14)
console.log(in1); // 输出true
console.log(in2); // 输出true
console.log(in3); // 输出false

6. startsWith(searchvalue, start)方法

(1)参数:searchvalue(必传)为要查找的字符串,start(选传)为查找的起始位置。
(2)返回值:true或false。
(3)功能:检测以某位置开始的字符串是否以指定字符串开始。

var str = "Where there is a will, there is a way."; 
var str7 = str.startsWith('Where');
var str8 = str.startsWith('there',6);
console.log(str7); // 输出true
console.log(str8); // 输出true,there is a will, there is a way.是以there开头

7. endsWith(searchvalue, length)方法

(1)参数:searchvalue(必传)为要查找的字符串,length(选传)为你需要判断的源字符串的长度。
(2)返回值:true或false。
(3)功能:检测指定长度的字符串是否以指定字符串结尾。

var str = "Where there is a will, there is a way."; 
var str9 = str.endsWith('.');
var str10 = str.endsWith('re',5);
console.log(str9); // 输出true
console.log(str10); // 输出true,长度为5及where是以re结尾

二、替换方法

1. replace(searchvalue, newvalue)方法

(1)参数:searchvalue(必传)为需要替换的字符串或匹配需要替换字符串的正则表达式,newvalue(必传)为替换成的值。
(2)返回值:源字符串经替换后的新字符串。

var str = "My phone number is 18068967543"; 
var str5 = str.replace(/(1[3-9]\d)\d{5}(\d{3})/g,'$1*****$2');// $1,$2分别对应正则表达式里括号里的值
var str6 = str.replace('My','Your');
console.log(str5); // 输出My phone number is 180*****543
console.log(str6); // 输出Your phone number is 18068967543

2. replaceAll(searchvalue, newvalue)方法

replaceAll方法与replace方法类似,区别在于用新字符串替换所有指定字符串或正则表达式匹配到的字符串。

三、 提取子串方法

1. slice(start, end)方法

(1)参数:start为截取起始位置(必传),end为截取结尾位置(选传),end不传时到字符串的末尾结束。ps:提取的字符串包含start,不包含end。
(2)返回值:提取的字符串。

var str = "No one can beat you except yourself."; 
var str1 = str.slice(0,19);
var str2 = str.slice(20);
console.log(str1); // 输出No one can beat you
console.log(str2); // 输出except yourself.

2. substring(start,end)方法

与slice方法相似,区别在于start,end参数都需为非负的整数。

3. substr(start, length)方法

(1)参数:start为截取起始位置(必传),length为截取长度(选传),length不传时到字符串的末尾结束。
ps:被淘汰,避免使用。
(2)返回值:提取的字符串。

var str = "No one can beat you except yourself."; 
var str3 = str.substr(7,3);
var str4 = str.substr(-9,8);
console.log(str3); // can
console.log(str4); // yourself

四、其他

1、将字符串变为数组

split(separator,limit)方法
(1)参数:separator为分隔符(选传),limit为返回数组最大长度(选传)。
(2)返回值:字符串数组。

var str = "l1o1v1e"; 
var arr1 = str.split('');// 注意引号中间没有空格
var arr2 = str.split('1');
var arr3 = str.split('1',2);
console.log(arr1); // 输出[ 'l', '1', 'o','1', 'v', '1','e']
console.log(arr2); // 输出[ 'l', 'o', 'v', 'e' ]
console.log(arr3); // 输出[ 'l', 'o' ]

2、去除字符串两边空白符

ps:空白符包括空格,制表符和换行符等
trim()方法

3、大小写转换

toUpperCase()方法:字符串转换为大写;
toLowerCase()方法:字符串转换为小写;

4、连接字符串

repeat(count)方法:返回复制指定次数连在一起的字符串;
concat(s1,s2,…sx)方法: 返回s1,s2…sx等字符串连接在一起的新字符串;
ps:格式为String.concat()

5、获取指定位置的字符

charAt(index)方法

6、补全字符串

padStart(length,str)方法
(1)参数:length为补全后字符串长度(必传),str为用来补全的字符串(选传)。不传str则默认为空格。
(2)返回值:补全后的字符串。
(3)功能:用于补全头部。

var str = "abcdef"; 
var str1 = str.padStart(7);//' abcdef',不传第二个参数则用空格补全
var str2 = str.padStart(6,'12');//'abcdef',目标长度和源字符串长度一致时,返回源字符串
var str3 = str.padStart(8,'12');//'12abcdef'
var str4 = str.padStart(7,'12');//'1abcdef',补全字符串长度与源字符串长度之和大于目标长度时截取补全字符串。

padEnd(length,str)方法
与padStart方法用法类似,但是是用于补全尾部。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值