String原型中的各种自带方法大全详解

由于自带的方法功能强大,性能强悍,所以非常有用。下面一个一个方法进行讲解。
当然一些将不被支持的方法就不放上来了。

1、charAt(index)(中括号内为可选值,以下都一样)

解释

返回字符串中第index个字符,第一个字符的索引为0,以此类推。

可以进行首字母排序啥的。

参数

index:代表想要取得的字符在字符串中的索引。类型:number
如果不传默认值为 0

返回值

类型:string

返回一个相应索引的字符串类型字符

注:如果传入的index大于字符串长度减一或小于0,则返回空字符串。

例子
var str = 'hello world!'
str.charAt(0)//'h'
str.charAt(1)//'e'
str.charAt(str.length - 1)//'d'
str.charAt(str.length)//''

2、charCodeAt(index)

解释

返回字符串中第index个字符的Unicode编码。这个返回值是 0 - 65535 之间的整数。第一个字符的索引为0,以此类推。

可以拿到并使用一些特殊字符。比如HTML使用&#60;来表示<小于符号,就是&#+unicode编码+英文的分号;(HTML上还可以用特殊符号&lt表示<),比如css上的content也可以用\+16进制的unicode编码表示,javascript上可以用\u+16进制的unicode表示。所以还是很有用的,还可以进行英文或者拼音的首字母排序。

参数

index:代表想要取得的字符在字符串中的索引。类型:number
如果不传默认值为 0

返回值

类型:number

返回字符串中第index个字符的Unicode编码。这个返回值是 0 - 65535 之间的整数。

注:如果传入的index大于字符串长度减一或小于0,则返回NaN。

例子
var str = 'hello world!'
str.charCodeAt(0)//104
str.charCodeAt(1)//101
str.charCodeAt(str.length - 1)//33
str.charAt(str.length)//NaN

3、codePointAt(index)

解释

返回字符串中第index个字符的Unicode编码,相比较charCodeAt()它能识别由4个字节储存的汉字。这个返回值是也是一个从0开始的整数。第一个字符的索引为0,以此类推。

可以用来判断有无4个字节的字符

参数

index:代表想要取得的字符在字符串中的索引。类型:number
如果不传默认值为 0

返回值

类型:number

返回字符串中第index个字符的Unicode编码。

注:如果传入的index大于字符串长度减一或小于0,则返回NaN。

例子
var str = '?a吃'//不认识这第一个字吧哈哈哈,我也不认识。
//但是unicode竟然要4个字符才能将它表示,
str.codePointAt(0)//134095
//而且index = 1竟然不是a,还是?
str.codePointAt(1)//57295(表明输出?后面两个字节表示的数值)
str.codePointAt(2)//97(index = 2时才输出 'a' 的)
str.codePointAt(length - 1)//21507(但是为什么index = length - 1时才输出 '吃' 的)
//因为。。。加上这个占4个字节的字符,字符串的长度竟然多加了一位。。。
str.length//4

上面的字符经过csdn的过滤后变?了。。。
应该是mac os 还不支持三、四个字符表示的文字。

4、concat(str1[str2[,…[,strN]]])

解释

将原字符串与传入的字符串连接起来返回一个新的字符串

和+号的作用差不多

参数

str:代表想和原字符串串联起来的字符串。类型:string
如果不传默认值为''空字符串

返回值

类型:string

返回一个串联起来的新字符串

例子
var str = 'hello'
var str2 = ' '
var str3 = 'world'
str.concat(str2,str3)//'hello world'

5、endsWith([str[,length])

解释

判断原字符串是否以传入的str字符串结尾

可以用来进行简单验证或过滤

参数

str:代表以它结尾的字符串。类型:string
如果不传,直接返回false
length:代表着原字符串从头开始截取为多少长度,再判断截取出来的字符串是否以传入的str字符串结尾
如果不传,默认为原字符串的长度

返回值

类型:booleaan

返回boolean值,表示是否以传入的str字符串结尾

例子
var str = 'hello'
str.endsWith('lo')//true
str.endsWith('ll')//false
str.endsWith('ll',str.length - 1)//true

6、includes(str[,index])

解释

判断原字符串是否包含传入的字符串str

可以用来搜寻和过滤。

参数

str:代表再在原字符串中要搜索的字符串。类型:string
如果不传,直接返回false
index:代表着从哪个索引开始进行搜索
如果不传,默认为0

返回值

类型:booleaan

返回boolean值,表示原字符串是否包含str字符串

例子
var str = 'hello'
str.include('ell')//true
str.include('ell',1)//true
str.include('ell',2)//false

7、indexOf(str[,index])

解释

includes一样,从前往后搜寻判断原字符串是否包含传入的字符串str。唯一不同是它返回找到的字符串索引,而不是是否找到的boolean值。
可以用来搜寻和过滤。

参数

str:代表再在原字符串中要搜索的字符串。类型:string
如果不传,直接返回-1
index:代表着从哪个索引开始进行搜索
如果不传,默认为0

返回值

类型:number

如果没有找到,则返回-1,如果找到返回在原字符串中第一次搜寻到的str的第一个字符在原数组的索引位置

例子
var str = 'hellolo'
str.indexOf('ell')//1
str.indexOf('ell',1)//1
str.indexOf('lo',1)//3
str.indexOf('ell',2)//-1

8、lastIndexOf(str[,index])

解释

它和indexOf一样,也是搜寻字符串,并返回找到的字符串在原字符串中的index索引值,不过返回的是最后搜到的。
可以用来搜寻和过滤。

例子
var str = 'hellolo'
str.lastIndexOf('ell')//1
str.lastIndexOf('ell',1)//1
str.lastIndexOf('lo',1)//6
str.lastIndexOf('ell',2)//-1

9、match(regexp)

解释

简单来说就是用来通过正则表达式模糊或精确查找的
可以用来搜寻和过滤或判断。

参数

regexp:代表正则表达式对象,代表它的查找规则。类型:regexp
如果不传,表示默认查找''空字符串。返回一个数组数组里面是找到的字符、索引及原字符串。
如果在正则表达式后面加个g,则表示查找所有匹配项,并将所有匹配项添加到一个数组并返回。不加则表示查找到第一个匹配项就返回。如果加i则表示大小写不敏感。

返回值

类型:array

返回一个数组,数组里面是找到的字符、索引及原字符串。
如果没有找到匹配项,则返回null

例子
var str = 'Hello'
str.match(/[l]/)//["l", index: 2, input: "Hello", groups: undefined]
str.match(/[l]/g)//["l", "l"]
str.match(/[h]/i)//["H", index: 0, input: "Hello", groups: undefined]

10、matchAll(regexp)

解释

与match差不多,不过返回的不是一个数组而是一个迭代器
可以用来搜寻和过滤或判断。

返回值

类型:iterator

返回一个迭代器,数组里面是找到的字符,索引。

如果没有匹配到,则返回空的迭代器。

11、padEnd(length[,str])

解释

在原字符串的末尾填充指定字符串到指定长度

参数

length:代表原字符串将被扩展到的指定长读。类型:number
如果length比原字符串的长度短,则直接返回原字符串的值。
如果不传,返回原字符串的值。
str:代表用来向后填充的字符串
如果不传,默认填充' '空格字符串

如果str填充完新字符串比length长,则从头截多余的str
如果短则继续重复填充相同str

返回值

类型:str

返回length长度的字符串。

例子
var str = 'hello'
var str1 = 'world'
str.padEnd(1,str1)//'hello'
str.padEnd(10,str1)//'helloworld'
str.padEnd(12,str1)//'helloworldwo'
str.padEnd(8,str1)//'hellowor'

12、padStart(length[,str])

解释

和padEnd差不多,其他都一样只不过是向前填充
可以用来格式化日期或者时间

例子
var str = 'hello'
var str1 = 'world'
str.padStart(1,str1)//'hello'
str.padStart(10,str1)//'worldhello'
str.padStart(12,str1)//'worldwohello'
str.padStart(8,str1)//'worhello'

//时间格式化
var date = new Date('1998-02-03 06:09:07')//1998年2月3日 6点9分7秒
date.toString()//"Tue Feb 03 1998 06:09:07 GMT+0800 (中国标准时间)"
var year = date.getFullYear()//1998
var month = date.getMonth() + 1//2(month是从0开始的)
month = month.toString().padStart(2,0)//'02'
var day = date.getDay()//3
day = day.toString().padStart(2,0)//'03'
var hours = date.getHours()//6
hours = hours.toString().padStart(2,0)//'06'
var minutes = date.getMinutes()//9
minutes = minutes.toString().padStart(2,0)//'09'
var seconds = date.getSeconds()//7
seconds = seconds.toString().padStart(2,0)//'07'
var time = `${year}-${month}-${day} ${hours}-${minutes}-${seconds}`//'1998-02-03 06:09:07'
//就是这样。。时间格式化。。

13、repeat(count)

解释

将原字符串复制count倍,然后将复制的都放入新的字符串输出。

参数

count:将原字符串复制count倍。类型:number
如果count为小数则取整数部分。
如果为0则输出空字符串。
如果为负数则报错。

返回值

类型:str

复制的都放入新的字符串输出

例子
var str = 'hello'
str.repeat(2)//'hellohello'
str.repeat(0)//''
str.repeat(1.5)//'hello'
str.repeat(-1)//报错

14、replace(str|regexp,newStr|fn)

解释

将匹配到的字符串给替换掉

参数

str|regexp:匹配用的字符串或者正则表达式/对象
默认匹配到一个就停止,如果想要匹配全局,可以在正则后面加g
如果不传,则返回原字符串的值
newStr|fn: 将匹配到的字符串替换成新的字符串或者用函数进行操作
如果为负数则报错。
fn中可以有这个默认参数fn([match])match代表着匹配到的字符串子串,可以用它进行操作并返回,返回的值会去修改原子串。

返回值

类型:str

输出经过替换的新的字符串

例子
var str = 'hello'
str.replace('l','o')//heolo
str.replace(/[l]/g,'o')//heooo
str.replace(/[l]/gi,function(match){
	return 'o'
})//heooo

15、search(regexp)

解释

match一样,只不过返回匹配到的索引值。但是搜索到第一个匹配项就停止。

返回值

类型:number

返回搜索到的第一个匹配项的索引

例子
'llll'.search(/[l]/g)//0
'klkkl'.search(/[l]/)//1

16、slice(startIndex[,endIndex])

解释

用来截取从索引位置startIndex开始字符串(到endIndex结尾的字符串)

参数

startIndex:从startIndex开始进行截取。类型:number
如果不传,返回原数组的值
如果为负数,则等于传str.length + startIndex的值,等于从最后往前的第-startIndex个索引位置(不包括)截取
endIndex:截取从startIndex索引位置(包含)到endIndex(不包含)的字符串
如果不传,截取到尾,或从尾截取
如果为负数,则等于传str.length + endIndex的值,等于从后往前的第-enIndex个索引位置(包括)截取结束

截取的总位数等于|-startIndex-enIndex|个字符

返回值

类型:str

返回截取的字符串

如果截取不到,则返回null

例子
var str = '012345'
str.slice()//'012345'
str.slice(1)//'12345'
str.slice(1,5)//'1234'
str.slice(1,str.length)//'12345'
str.slice(-3)//'456'(可以理解为截取末尾-startIndex位字符)
str.slice(-3,-1)//'45'

16、slice(startIndex[,endIndex])

解释

用来截取从索引位置startIndex开始字符串(到endIndex结尾的字符串)

参数

startIndex:从startIndex开始进行截取。类型:number
如果不传,返回原数组的值
如果为负数,则等于传str.length + startIndex的值,等于从最后往前的第-startIndex个索引位置(不包括)截取
endIndex:截取从startIndex索引位置(包含)到endIndex(不包含)的字符串
如果不传,截取到尾,或从尾截取
如果为负数,则等于传str.length + endIndex的值,等于从后往前的第-enIndex个索引位置(包括)截取结束

截取的总位数等于|-startIndex-enIndex|个字符

返回值

类型:str

返回截取的字符串

如果截取不到,则返回null

例子
var str = '012345'
str.slice()//'012345'
str.slice(1)//'12345'
str.slice(1,5)//'1234'
str.slice(1,str.length)//'12345'
str.slice(-3)//'456'(可以理解为截取末尾-startIndex位字符)
str.slice(-3,-1)//'45'

16、split(str|regexp[, count]])

解释

将原字符串根据str进行分割(可以理解为找到一个str后就将str前面的子串push到函数上去,然后str字串删掉不需要,将最后一个匹配到的str子串后面的字符串字串再push到函数上去)

参数

str|regexp:表示按照str进行分割操作,或者匹配相应正则的字符串进行分割。
如果不传默认返回只包含原字符串的数组
count:表示限制,最多分割count个片段。如果最终可分割的片段比count少,则不做限制
如果不传。默认没有限制

返回值

类型:array

返回分割出来的字符串片段组成的数组。

如果分割不到,则返回只包含原字符串的数组

例子
var str = '012345'
str.split('')//["0", "1", "2", "3", "4", "5"]
var str1 = 'a d f g'
str1.split(' ')//["a", "d", "f", "g"]
str1.split()//['a d f g']
str1.split(' ',2)//['a', 'd']

17、startsWith([str[,startIndex])

解释

与endsWith差不多,它是判断从startIndex开头是否能匹配到str

参数

str:代表以它开头的字符串。类型:string
如果不传,直接返回false
startIndex:代表着从startIndex索引(包含)开始匹配
如果不传,默认为从头匹配

返回值

类型:booleaan

返回boolean值,表示是否以传入的str字符串开头

例子
var str = 'hello'
str.startsWith('he')//true
str.startsWith('ll')//false
str.startsWith('ll',2)//true

18、substring(startIndex[,endIndex])

解释

与slice差不多,只不过它不能用负数,用负数之后都返回空字符串

例子
var str = 'hello'
str.substring(-5,-1)//''

19、toUpperCase()

解释

转化成大写

参数

没有参数

返回值

类型:str

返回转化成小写的字符串

例子
var str = 'hello'
str.toLowerCase()//'HELLO'

20、toLowerCase()

解释

转化成小写

返回值

类型:str

返回转化成小写的字符串

例子
var str = 'HELLO'
str.toLowerCase()//'hello'

21、trim()

解释

去除字符串左右空格

参数

没有参数

返回值

类型:str

返回去掉左右空格后的字符串

例子
var str = '    hello     '
str.trim()//'hello'

22、trimLeft()/trimRight()

解释

去除字符串左/右空格

参数

没有参数

返回值

类型:str

返回去掉左/右空格后的字符串

例子
var str = '    hello     '
str.trimLeft()//'hello     '
str.trimRight()//'    hello'
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值