- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) >
- js怎么計算給定字符的全部出現位置
本篇內容主要講解“js怎么計算給定字符的全部出現位置”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強。下面就讓小編來(lái)帶大家學(xué)習“js怎么計算給定字符的全部出現位置”吧!
我們在之前的文章中了解到使用indexOf()和lastIndexOf()函數可以獲取子串在第一次出現位置和最后一次出現位置;如果沒(méi)有找到該子串,則返回-1。
而這兩個(gè)函數都可接收可選的第二個(gè)參數start
,值只能是一個(gè)整數,表示從字符串中的哪個(gè)位置開(kāi)始搜索,取值范圍是 0
~ length-1
。lastIndexOf()如果指定了start參數,則在一個(gè)字符串中的指定位置從后向前搜索。
利用這個(gè)可選的第二個(gè)參數start和循環(huán)語(yǔ)句,我們就可以計算給定子串(包含一個(gè)或多個(gè)字符)的全部出現位置。
首先看看使用indexOf()是怎么統計給定字符在字符串的所有出現位置
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); //從給定字符出現位置的后一位開(kāi)始查找 } console.log(positions);//"3,24,32,35,52"
分析:先使用indexOf("e")
獲取第一次出現位置并賦值給變量pos;然后使用while語(yǔ)句通過(guò)循環(huán)調用indexOf(),不斷將查找起始位置設置為“pos + 1
”,從給定字符出現位置pos的后一位開(kāi)始查找,獲取下一個(gè)出現位置;直到查找不到,返回-1結束。因此輸出結果為:
可以看出,給定字符“e
”在字符串stringValue中一個(gè)出現了5次,因為字符串位置起始于 0,而不是 1,所以出現位置分別為3、24、32、35、52。
然后我們來(lái)看看使用lastIndexOf()是怎么統計給定字符在字符串的所有出現位置
var stringValue = "Lorem ipsum dolor sit amet, consectetur adipisicing elit"; var positions = new Array(); var pos = stringValue.lastIndexOf("e"); while(pos > -1){ positions.push(pos); pos = stringValue.lastIndexOf("e",pos - 1); } console.log(positions);//"3,24,32,35,52"
分析:使用lastIndexOf()獲取所有出現位置其實(shí)和使用indexOf()差不多,只不過(guò)因為lastIndexOf()返回的是最后一次的出現位置,所以,每次循環(huán),我們都要將查找的起始位置設置為“pos - 1”。
看看輸出結果:
可以看出,獲取到的給定字符“e”在字符串stringValue中所有出現位置是倒序的,順序分別為:52、35、32、24、3。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站