十年专注于品牌网站建设 十年专注于品牌网站建设,低调、有情怀的网络应用服务商!
南昌百恒网络微信公众号 扫一扫关注
小程序
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络微信小程序

百恒网络

南昌百恒网络

字符串位置查询常用函数indexOf()和lastIndexOf()使用方法

百恒网络 2012-09-18 2587

有两个可以从字符串中查找子字符串的方法:indexOf()和lastIndexOf()。这两个方法都是从一个字符串中搜索给定的子字符串,然后返子字符的位置(如果没有找到该子字符串,则返回-1)。这两个方法的区别在于:indexOf()方法从字符串的开头向后搜索子字符串,而lastlndexOf()方法是从字符串的末尾向前搜索子字符串。还是来看一个例子吧:

var stringValue="hello world";

alert(stringValue.indexOf("o"));

alert(stringValue.lastIndexOf("o"));

子字符串”o”第一次出现的位置是4,即”hello”中的”o“;最后一次出现的位置是7,即”world”中的"o"。如果”o”在这个字符串中仅出现了一次,那么indexOf()和lastlndexOf()会返回相同的位置值。

南昌网站建公司技术员提醒大家indexOf是从0开始计算位置,而lastIndexOf是从1开始,包括空格.

这两个方法都可以接收可选的第二个参数,表示从字符串中的哪个位置开始搜索。换句话说,indexOf()会从该参数指定的位置向后搜索,忽略该位置之前的所有字符;而lastlndexOf()则会从指定的位置向前搜索,忽略该位置之后的所有字符。看下面的例子:

var stringValue="hello world";

alert(stringValue.indexOf("o",6));

alert(stringValue.lastIndexOf("o",6));

在第二个参数6传递给这两个方法之后,得到了与前面例子相反的结果。这一次,由于indexOf()是从位置6(字母"w")开始向后搜索,结果在位置7找到了no”,因此它返回7。而lastlndexOf()是从位置6开始向前搜索。结果找到了”hello”中的”o”,因此它返回4。在使用第二个参数的情况下,

可以通过循环调用indexOf()或lastlndexOf()来找到所有匹配的子字符串,如下面的例子所示:

var stringValue = "BaiHeng Network engineers learning Javascript is a very happy thing";

var positions=new Array();

var pos=stringValue.indexOf("e");

while(pos>-1){

positions.push(pos);

pos=stringValue.indexOf("e",pos+1);

}

alert(positions); //"4,9,16,21,22,27,52"

这个例子通过不断增加indexOf()方法开始查找的位置,遍历了一个长字符串。在循环之外,首先找到了"e"在字符串中的初始位置;而进入循环后,则每次都给indexOf()传递上一次的位置加l。这样,就确保了每次新搜索都从上一次找到的子字符串的后面开始。每次搜索返回的位置依次被保存在数组positions中,以便将来使用。


400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络小程序

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
售后服务 售后服务
 
备案专线 备案专线
 
×