<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js的几种截取字符串方法</title>
</head>
<body>
<li>方法1:substr</li>
<li>方法2:Substring</li>
<li>方法3:slice</li>
<li>方法4:charAt</li>
</body>
</html>
<script>
/// 1.stringObject.substr(start,length)
// start :必填 子串的起始下标。必须是数值,如果是负值,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
// length:可选 截取字符串的个数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。
var lis = document.getElementsByTagName("li");
var str1 = "abcdefg";
//0
lis[0].innerHTML = str1.substr(0);//返回本身abcdefg
//一个参数
lis[0].innerHTML = str1.substr(2);//返回截取掉前面2个字符串的值cdefg
//2个负数
lis[0].innerHTML = str1.substr(-2,-1);//length不能为负数,若强行传递负数,就为0,相当于str1.substr(0,0)
//2个正数
lis[0].innerHTML = str1.substr(3,5);///截取第3个之后(不含3)的字符,截取5个字符 defg
//一负一正
lis[0].innerHTML = str1.substr(-2,2);//start为负数,-1 指字符串中最后一个字符,返回截取字符串倒数2个字符,fg
</script>
<script>
/// 2.stringObject.Substring(start,length)
// start :必填 一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
// length:可选 一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1,如果省略该参数,那么返回的子串会一直到字符串的结尾。
var lis = document.getElementsByTagName("li");
var str1 = "abcdefg";
//0
lis[1].innerHTML = str1.substring(0);//返回本身abcdefg
//一个参数
lis[1].innerHTML = str1.substring(2);//截取第二个之后所有的字符 cdefg
//2个正数
lis[1].innerHTML = str1.substring(3,5);///截取第3个之后(不含3)到第5+1(提取的子串的 stringObject 中的位置多 1)个之间的字符 de
//2个负数
lis[1].innerHTML = str1.substring(-2,-1);//start、length不能为负数,若强行传递负数,就为0,相当于str1.substring(0,0) 值为"";
//一负一正
lis[1].innerHTML = str1.substring(-2,2);//跟substring(0,2)一样,返回ab
//一正一负
lis[1].innerHTML = str1.substring(3,-5);///截取第3个之后到第0个之间的字符 abc
</script>
<script>
/// 3.stringObject.slice(start,end)
// start :必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
// end:可选 规定从何处结束选取。该参数是数组片断结束处的数组下标。如果省略该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
var lis = document.getElementsByTagName("li");
var str1 = "abcdefg";
//0
lis[2].innerHTML = str1.slice(0);//返回本身abcdefg
//一个参数
lis[2].innerHTML = str1.slice(2);//截取第二个之后所有的字符 cdefg
//2个正数
lis[2].innerHTML = str1.slice(3,5);///截取第3个之后(不含3)到第6个之间的字符 de
//2个负数
lis[2].innerHTML = str1.slice(-2,-1);//start end -1 指最后一个元素,-2 指倒数第二个元素,以此类推。 f
//一正一负
lis[2].innerHTML = str1.slice(1,-3);//截取第1个(不含1)到 倒数第3个之间的字符 bcd
</script>
<script>
// 4.charAt() 方法可返回指定位置的字符。
// stringObject.charAt(index)
//index: 必需。表示字符串中某个位置的数字,即字符在字符串中的下标。
var lis = document.getElementsByTagName("li");
var str1 = "abcdefg";
lis[3].innerHTML = str1.charAt(2);//值截取一个值
</script>