Qt中indexOf()和lastIndexOf()查字符串位置
⾸页 » JavaScript » indexOf()和lastIndexOf()查字符串位置 indexOf()和lastIndexOf()查字符串位置发表于 2011-10-05 由 admin
有两个可以从字符串中查⼦字符串的⽅法:indexOf()和lastIndexOf()。这两个⽅法都是从⼀个字符串中搜索给定的字符串,然后返回⼦字符串的位置(如果没有⼦字符串的位置,则返回-1)。这两种的⽅法的区别在于:indexOf()⽅法从字符串的开头向后搜索字符串,⽽lastIndexOf()⽅法是从字符串的末尾向前搜索⼦字符串。
var stringValue = "hello world" ; alert ( stringValue . indexOf ( "o" )); //4 alert ( stringValue . lastIndexOf ( "o" )); //7
⼦字符串“o”第⼀次出现的位置是4,即“hello”中的“o”;最后⼀次出现的位置是7,即“world”中的“o”。如果“o”在这个字符串中只出现了⼀次,那么indexOf()和lastIndexOf()会返回相同的位置值。
这两种⽅法都可以接受可选的第⼆个参数,表⽰从字符串中的哪个位置开始搜索。换句话说,indexOf()会从该参数指定的位置向后搜索,忽略该位置之前的所有字符;⽽lastIndexOf()则会从指定的位置向前搜索,忽略该位置之后的所有字符。看下⾯的例⼦:
var stringValue = "hello world" ; alert ( stringValue . indexOf ( "o" , 6 )); //7 alert ( stringValue . lastIndexOf ( "o" , 6 )) //4
在将第⼆个参数6传递给这两个⽅法之后,得到了与前⾯例⼦相反的结果。这⼀次,由于indexOf()是从位置6(字母“w”)开始向后搜索,结果在位置7到了“o”,因此它返回7。⽽lastIndexOf()是从6开始向前搜索,结果到了“hello”中的“o”,因此它返回4。在使⽤第⼆个参数的情况下,可以通过循环调⽤indexOf()或lastIndexOf()来到所有匹配的⼦字符串,如下⾯的例⼦所⽰:
var stringValue = "Lorem ipsum dolor sit amet, consectetur adipisicing elit" ; var positions = new Array (); var pos = stringValue . indexOf ( "e" ); while ( pos > - 1 ) {    positions . push ( pos );    pos = stringValue . indexOf ( "e" , pos + 1 ); } alert ( positions ); //"3,24,32,35,52"
这个例⼦不断增加indexOf()⽅法开始查的位置,遍历了⼀个长字符串。在循环之外,⾸先到了“e”在字符串中的初始位置;⽽进⼊循环后,则每次都给indexOf()传递上⼀次的位置加1。这样,就确保了每次新搜索都从上⼀次到字符串的后⾯开始。每次搜索返回的位置⼀次被保存在数组positions中,以便将来使⽤。
Related posts:
String 类型
charAt()和charCodeAt()获取字符串特定字符
concat()、slice()、substr()和substring()
indexof能用于数组吗JavaScript push()和pop()⽅法
JavaScript shift()和unshift()⽅法
此⽂章发表在 JavaScript 标签为引⽤类型 . 将固定链接加⼊收藏.
阅读最多更多>>
localeCompare()⽅法
HTML5中⽤canvas绘制径向渐变
跨浏览器确定窗⼝⼤⼩
cookie的成分
JavaScript插⼊动态脚本
clientX与clientY确定客户区…
JavaScript惰性载⼊函数
HTTP头部信息

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。