一、关于字符串分割
1、slice(start,end)
(1)截取字符串时不包括下标为end的元素。end是可选参数,没有时,默认从start到结束的所有字符串。
(2)String.slice与Array.slice区别。一个是一段字符串,一个是一段浅复制后的数组
(3)参数为负数时,是如何处理的。
将字符串的长度与对应的负数相加,结果作为参数。
2、substr(start,length);
(1)第二个参数是子串中的字符数,必须是数值。可以没有。
(2)参数为负数时如何进行处理
第一个参数与字符串长度相加后的结果作为第一个参数
(3)最重要一点来自官网说明,如下所示:
**ECMAscript 没有对该方法进行标准化,因此反对使用它。**
由于substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。
3、substring(start,end);
和slice类似,关于这个方法,同样需要搞懂几个关键点:
(1)返回的字符串中不包括 end处的字符。
(2)参数为负数时如何进行处理。
直接将负参数直接转成0
(3)如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
(4)如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。
这个方法的作用同样可以使用slice方法来替代。
slice(3,11-4)就是从下标3截取到下标7的字符串,这里就是”lo w”。substring(3,0),其中-4直接转成0,所以由定义从下标0截取到3,这里表示”hel”。最后一个substr第一个参数不是负数,第二个表示长度的参数为负数时,输出只能是空字符串。
区别和使用:
(一):都接收两个参数,slice和substring接收的是起始位置和结束位置(注意:不包括结束位置),而substr接收的则是起始位置和所要返回的字符串长度。
4、split(字符串/正则,length);
“2:3:4:5”.split(":") //将返回[“2”, “3”, “4”, “5”]
“|a|b|c”.split("|") //将返回["", “a”, “b”, “c”]
其他
1、charAt(pos)
返回指定位置(如上pos)的字符。如果pos小于0或者大于等于字符串的长度string.length,它会返回空字符串。
var name = ‘hello world’;
name.chartAt(0); --“h”
2、concat(string…)
用于连接两个或者多个字符串。相较于数组Array.concat()。其实字符串到是用的不多,主要是之前使用加号(+)会更方便一些,新语法时一步优化字符串拼接的操作。
3、indexOf(searchString,position)
在string内查找另一个字符串searchString。如果它被找到,就返回第1个匹配字符的位置,否则返回-1。
需要记住一点是:可选参数position可设置从string的某个指定的位置开始查找。
4、lastIndexOf(searchString,position)
与indexOf方法类似,只不过它是从该字符串的末尾开始查找而不是从开头。
5、localeCompare(that)
用来比较两个字符串,返回比较结果数字。如果stringObject 小于 target,则 localeCompare() 返回小于 0 的数。如果 stringObject 大于 target,则该方法返回大于 0 的数。如果两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。
6、match(regexp)
match方法让字符串和一个正则表达式进行匹配。它依据g标识来决定如何进行匹配。如果没有g标识,那么调用string.match(regexp)的结果与调用regexp.exec(string)的结果相同。带g标识返回的是一个结果数组,
7、replace(searchValue,replaceValue)
作用:replace方法对string进行查找和替换操作,并返回一个新的字符串。
取值:而参数searchValue可以是一个字符串或者一个正则表达式对象。
第一种情况:如果searchValue是一个字符串,那么searchValue只会在第1次出现 的地方被替换