字符串/数组的截取

字符串的截取方法

除第一种方法返回的是数组外,其他的都是字符串,所有方法都不改变原字符串。

1、split(); 实用一个置顶的分割符把字符串分割存储到数组,返回的是数组
str.split(separator, howmany);
separator: 必需。字符串或正则表达式,从该参数指定的地方分割。若为"",表示将字符串每个字符分隔开。
howmany: 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

var str = "jpg|png|gif";
var arr = str.split("|");
console.log(arr);// ["jpg", "png", "gif"];
console.log(str.split("", 6));//["j", "p", "g", "|", "p", "n"]

2、substring(); 提取字符串中介于两个指定下标之间的字符。
str.substring(start, stop);
start: 必需。一个非负的整数,规定要提取的子串第一个字符的位置。
stop: 可选。一个非负的整数,必要提取的子串的最后一个字符位置+1。如省略,则表示提取到字符串的结尾。

var str = "abcdefghijklmnopqrstuvwxyz";//取出defghi
console.log(str.substring(3, 9));

3、substr(start [, length]); 用于返回一个从指定位置开始的指定长度的子字符串。
start: 必需。
length: 可选。如果为0或者负数,则返回空字符串,若没有,则表示延续到字符串的最后。

var str = "abcdefghijklmnopqrstuvwxyz";//取出l之后的6个元素,不包含l
console.log(str.substr(12, 6));//mnopqr

4、slice(start, stop);
start: 必需。截取的字符串的第一个字符的下标,保留后面的。
stop: 可选。截取到第几位,若为负数,则表示从后往前数的第几位;若没有,则表示截取到最后。

	var str = "abcdefghijklmnopqrstuvwxyz";
	console.log(str.slice(3, 5));//de
	console.log(str.slice(20, -2));//uvwx

数组的截取

1、slice(start, stop);
与字符串的截取雷同,不改变原数组;
2、splice() ; 向从数组中删除/添加项目,然后返回被删除的项目。(对原数组进行了修改
arr.splice(index, num, item1, item2, …, itemX);
index: 位置;num: 删除数量;item1…:添加内容
返回值: 含有被删除元素的数组

var arr = ["Mary", "HanMeimei", "LiMing", "JingJiang"];
var newArr = arr.splice(2, 1, "newCreate1","newCreate2");
console.log(newArr);//["LiMing"]
console.log(arr);//["Mary", "HanMeimei", "newCreate1", "newCreate2", "JingJiang"]

字符串的替换

replace
用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的字串。
string.replace(regexp/substr, replacement)
如果regexp 具有全局标志 g,那么replace() 方法将替换所有匹配的字串,否则,只替换第一个匹配字串。

replacement 可以是字符串, 也可以是函数。如果它是字符串,那么每个匹配都将由字符串替换。但是replacement 中的 $ 字符具有特殊含义。它说明从模式匹配得到的字符串将用于替换。

字符 替换文本
$1、$2 … $99 与 regexp 中的第1个到第99个子表达式相匹配的文本
$& 与 regexp 相匹配的子串
$` 位于匹配子串左侧的文本
$’ 位于匹配子串右侧的文本
$$ 直接量符号

你可能感兴趣的:(Js,Javascript)