JavaScript-截取字符串

引言

在js中字符串截取函数有常用的三个slice()、substring()、substr()函数,同时还有一些方法如split() 、Join() 、indexOf()可以对字符串进行操作,来获得截取我们想要的字符串。

语法

取字符串的三个函数:

slice(start,[end])
substring(start,[end])
substr(start,[length])

slice()

第一个参数代表开始位置,第二个参数代表结束位置的下一个位置,截取出来的字符串的长度第二个参数与第一个参数之间的差

JavaScript-截取字符串_第1张图片
这里写图片描述

若参数值为负数,则将该值加上字符串长度后转为正值;
这里写图片描述

若第一个参数等于大于第二个参数,则返回空字符串。
JavaScript-截取字符串_第2张图片

substring()

第一个参数表示开始位置,第二个参数代表结束位置的下一个位置;

若参数值为负数,则将该值转为0;

两个参数中,取较小值作为开始位置,截取出来的字符串的长度为较大值与较小值之间的差。

JavaScript-截取字符串_第3张图片
这里写图片描述

substr()

第一个参数代表开始位置,第二个参数代表截取的长度

若参数为负数,第一个按倒叙查,若超出字符串长度,则输出整个字符串。第二个参数视为0。
JavaScript-截取字符串_第4张图片
这里写图片描述
PS:字符串都是从0开始计起。

示例

   var stmp = "rcinn.cn";
      //使用一个参数
      console.log("demoStringSlice");
      console.log(stmp.slice(3),"nn.cn")
      console.log(stmp.substring(3),"nn.cn");

      //使用两个参数
      console.log(stmp.slice(1,5),"cinn")
      console.log(stmp.substring(1,5),"cinn");

      //如果只用一个参数并且为0的话,那么返回整个参数
      console.log(stmp.slice(0),"rcinn.cn");
      console.log(stmp.substring(0),"rcinn.cn");

      //返回第一个字符

      console.log(stmp.slice(0,1),"r");
      console.log(stmp.substring(0,1),"r");

      //在上面的例子中我们可以看出slice()和substring()的用法是相同的
      //返回的值也是一样的,但当参数为负数时,他们的返回值却不一样,看下面的例子
      console.log(stmp.slice(2,-5),"i");
      console.log(stmp.substring(2,-5),"rc");
      //从上面两个例子可以看出slice(2,-5)实际上是slice(2,3)
      //负5加上字符串长度8转换成正3(若第一位数字等于或大于第二位数字,则返回空字符串);
      //而substring(2,-5)实际上是substring(2,0),负数转换为0,substring总是把较小的数作为起始位置。

      console.log(stmp.substring(1,5),"cinn")
      console.log(stmp.substr(1,5),"cinn.");

the different of substring and substr

var str = "0123456789";// 
console.log("the different of substring and substr");
console.log(str.substring(0),"0123456789");//------------"0123456789" 
console.log(str.substring(5),"56789");//------------"56789" 
console.log(str.substring(10),"");//-----------"" 
console.log(str.substring(12),"");//-----------"" 
console.log(str.substring(-5),"0123456789");//-----------"0123456789" 
console.log(str.substring(-10),"0123456789");//----------"0123456789" 
console.log(str.substring(-12),"0123456789");//----------"0123456789" 
console.log(str.substring(0,5),"01234");//----------"01234" 
console.log(str.substring(0,10),"0123456789");//---------"0123456789" 
console.log(str.substring(0,12),"0123456789");//---------"0123456789" 
console.log(str.substring(2,0),"01");//----------"01" 
console.log(str.substring(2,2),"");//----------"" 
console.log(str.substring(2,5),"234");//----------"234" 
console.log(str.substring(2,12),"23456789");//---------"23456789" 
console.log(str.substring(2,-2),"01");//---------"01" 
console.log(str.substring(-1,5),"01234");//---------"01234" 
console.log(str.substring(-1,-5),"");//--------"" 
console.log(str.substr(0),"0123456789");//---------------"0123456789" 
console.log(str.substr(5),"56789");//---------------"56789" 
console.log(str.substr(10),"");//--------------"" 
console.log(str.substr(12),"");//--------------"" 
console.log(str.substr(-5),"56789");//--------------"0123456789" 
console.log(str.substr(-10),"0123456789");//-------------"0123456789" 
console.log(str.substr(-12),"0123456789");//-------------"0123456789" 
console.log(str.substr(0,5),"01234");//-------------"01234" 
console.log(str.substr(0,10),"0123456789");//------------"0123456789" 
console.log(str.substr(0,12),"0123456789");//------------"0123456789" 
console.log(str.substr(2,0),"");//-------------"" 
console.log(str.substr(2,2),"23");//-------------"23" 
console.log(str.substr(2,5),"23456");//-------------"23456" 
console.log(str.substr(2,12),"23456789");//------------"23456789" 
console.log(str.substr(2,-2),"");//------------"" 
console.log(str.substr(-1,5),'9');//------------"01234" 
console.log(str.substr(-1,-5),"");//-----------"" 

split()

功能:使用一个指定的分隔符把一个字符串分割存储到数组

语法

stringObject.split(separator,limit)

separator 必需。分隔符,从该参数指定的地方分隔stringObject。
limit 可选参数。分隔的次数,如设置该参数,返回的子串不会多余这个参数指定的数组,如果无此参数为不限制次数

注意
如果把空字符串 (“”) 用作 separator,那么 stringObject 中的每个字符之间都会被分割。

将字符串分割为字符

document.write(mystr.split("")+"
"
); document.write(mystr.split("", 5));

运行结果

w,w,w,.,i,m,o,o,c,.,c,o,m
w,w,w,.,i

加上limit只会切割成符合条件的数组,余后的字符会被删除掉

var oStr="jpg|bmp|gif|ico|png";
var arr=oStr.split("|");
console.log(arr);

arr是一个包含字符值”jpg”、”bmp”、”gif”、”ico”和”png”的数组
JavaScript-截取字符串_第5张图片

Join()

功能:使用自己选择的分隔符将一个数组合合并为一个字符串

var myList=new Array("jpg","bmp","gif","ico","png");
var portableList=myList.join("|");
console.log(portableList);

这里写图片描述

indexOf()

功能:返回某个指定的字符串值在字符串中首次出现的位置。

语法

stringObject.indexOf(substring, startpos)

substring 必需。规定需检索的字符串值。
startpos 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是0到stringObject.length-1。如省略改参数,则将从字符串的首字符开始检索

如果要检索的字符串值没有出现,则该方法返回 -1。

var myString="JavaScript"
var oNum1=myString.indexOf("v");
var oNum2=myString.indexOf("S");
var oNum3=myString.indexOf("Script");
var oNum4=myString.indexOf("key");
console.log(oNum1,oNum2,oNum3,oNum4);

这里写图片描述

你可能感兴趣的:(javascript)