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()
JavaScript push()和pop()方法
JavaScript shift()和unshift()方法
此文章發表在 JavaScript 標簽為 引用類型 . 將 固定鏈接 加入收藏.
 
閱讀最多 更多>>
navigator.onLine 離線檢測
localeCompare()方法
HTML5中用canvas繪制徑向漸變
跨瀏覽器確定窗口大小
cookie的成分
JavaScript插入動態腳本
clientX與clientY確定客戶區…
JavaScript惰性載入函數
HTTP頭部信息





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM