常⽤JS——string字符串⽅法
⼀、关于字符串分割
1、slice(start,end);
关于这个⽅法,⼀定要搞懂四个关键点:
(1)截取字符串时***不包括***下标为end的元素。
(2)end是可选参数,没有时,默认从start到结束的所有字符串。
(3)String.slice与Array.slice区别。
(4)参数为负数时,是如何处理的。
其中第3点其实就是在JavaScript中字符串和数组都具有这个⽅法,它们的返回结果形式不⼀样,⼀个是⼀段字符串,⼀个是⼀段浅复制后的数组。另外三个点接着往下看你就会明⽩。
2、substr(start,length);
关于这个⽅法,也需要搞懂⼏个关键点:
(1)第⼆个参数是⼦串中的字符数,必须是数值。可以没有。
(2)参数为负数时如何进⾏处理。
(3)最重要⼀点来⾃官⽹说明,如下所⽰:
**ECMAscript 没有对该⽅法进⾏标准化,因此反对使⽤它。**
由于substr() 的参数指定的是⼦串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使⽤。
3、substring(start,end);
和slice类似,关于这个⽅法,同样需要搞懂⼏个关键点:
(1)返回的字符串中***不包括*** end处的字符。
(2)参数为负数时如何进⾏处理。
(3)如果参数 start 与 end 相等,那么该⽅法返回的就是⼀个空串(即长度为 0 的字符串)。
(4)如果 start ⽐ end ⼤,那么该⽅法在提取⼦串之前会先交换这两个参数。
这个⽅法的作⽤同样可以使⽤slice⽅法来替代。
区别和使⽤:
(⼀):都接收两个参数,slice和substring接收的是起始位置和结束位置(注意:不包括结束位置),⽽substr接收的则是起始位置和所要返回的字符串长度。
看⼀下控制台运⾏出来的结果,其中slice/substring都是从0开始截取3到6位置但不包括6位置的字符串"lo “,对⽐之下,substr截取3位置之后的6个字符串"lo wor”。
(⼆):需要注意substring是以两个参数中较⼩⼀个作为起始位置,较⼤的参数作为结束位置。
上⾯这个(6,3)会默认变成(3,6)将⼩的当起始位置来处理。
(三):参数为负数时如何解析。
(我认为这种负数的情况就应该在标准中禁⽌掉,参数中有负数时直接报错就⾏,可现在竟然能为负数,那我们只有两条出路:1,避免在code的时候出现它;2,就是今天我们要做的,彻底搞懂它。⼀次性消灭掉)
slice:将字符串的长度与对应的负数相加,结果作为参数。
substr:只会将第⼀个参数与字符串长度相加后的结果作为第⼀个参数(第⼀个参数为负数)。
substring:直接将负参数直接转成0。
第⼀,先看⼀个参数的情况:
解释⼀下上⾯的结果:字符串长度是11,(11-3=8),所以slice(-3)和substr(-3)从下标为8的字母开始。得到的结果就是"rld"。⽽substring直接将负数据转为0,所以输出结果就是"hello world".
第⼆,看⼀下两个参数的情况:
先回忆⼀下上⾯的定义:
slice:长度与负数相加作为参数。
substring:负数直接转为0。
substr:仅将第⼀个参数与长度相加作为第⼀个参数。
解释⼀下输出的结果:slice(3,11-4)就是从下标3截取到下标7的字符串,这⾥就是"lo w"。substring(3,0),其中-4直接转成0,所以由定义从下标0截取到3,这⾥表⽰"hel"。最后⼀个substr第⼀个参数不是负数,第⼆个表⽰长度的参数为负数时,输出只能是空字符串。
4、split(字符串/正则,length);
来阐述⼀下。split⽅法把⼀个字符串string分割成⽚段创建⼀个字符串数组,可选参数howmany可以限制被分割的⽚段的数量。separator参数可以是⼀个字符串或⼀个正则表达式。
⼆、其它字符串处理⽅法
1、charAt(pos)js方法
返回指定位置(如上pos)的字符。如果pos⼩于0或者⼤于等于字符串的长度string.length,它会返回空字符串。
var name = 'hello world';
name.chartAt(0); --"h"
2、concat(string…)
⽤于连接两个或者多个字符串。相较于数组at()。其实字符串到是⽤的不多,主要是之前使⽤加号(+)会更⽅便⼀些,新语法时⼀步优化字符串拼接的操作。
3、indexOf(searchString,position)
在string内查另⼀个字符串searchString。如果它被到,就返回第1个匹配字符的位置,否则返回-1。
需要记住⼀点是:可选参数position可设置从string的某个指定的位置开始查。
4、lastIndexOf(searchString,position)
与indexOf⽅法类似,只不过它是从该字符串的末尾开始查⽽不是从开头。
5、localeCompare(target)
⽤来⽐较两个字符串,返回⽐较结果数字。如果stringObject ⼩于 target,则 localeCompare() 返回⼩于 0 的数。如果 stringObject ⼤于 target,则该⽅法返回⼤于 0 的数。如果两个字符串相等,或根据本地排序规则没有区别,该⽅法返回 0。
6、match(regexp)
match⽅法让字符串和⼀个正则表达式进⾏匹配。它依据g标识来决定如何进⾏匹配。如果没有g标识,那么调⽤string.match(regexp)的结果与调⽤(string)的结果相同。带g标识返回的是⼀个结果数组,
7、replace(searchValue,replaceValue)
作⽤:replace⽅法对string进⾏查和替换操作,并返回⼀个新的字符串。
取值:⽽参数searchValue可以是⼀个字符串或者⼀个正则表达式对象。
第⼀种情况:如果searchValue是⼀个字符串,那么searchValue只会在第1次出现 的地⽅被替换
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论