本篇內(nèi)容主要講解“js怎么計算給定字符的全部出現(xiàn)位置”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“js怎么計算給定字符的全部出現(xiàn)位置”吧!
成都創(chuàng)新互聯(lián)于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務公司,擁有項目成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元疏附做網(wǎng)站,已為上家服務,為疏附各地企業(yè)和個人服務,聯(lián)系電話:13518219792
我們在之前的文章中了解到使用indexOf()和lastIndexOf()函數(shù)可以獲取子串在第一次出現(xiàn)位置和最后一次出現(xiàn)位置;如果沒有找到該子串,則返回-1。
而這兩個函數(shù)都可接收可選的第二個參數(shù)start
,值只能是一個整數(shù),表示從字符串中的哪個位置開始搜索,取值范圍是 0
~ length-1
。lastIndexOf()如果指定了start參數(shù),則在一個字符串中的指定位置從后向前搜索。
利用這個可選的第二個參數(shù)start和循環(huán)語句,我們就可以計算給定子串(包含一個或多個字符)的全部出現(xiàn)位置。
首先看看使用indexOf()是怎么統(tǒng)計給定字符在字符串的所有出現(xiàn)位置
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); //將出現(xiàn)位置賦給數(shù)組 pos = stringValue.indexOf("e",pos + 1); //從給定字符出現(xiàn)位置的后一位開始查找 } console.log(positions);//"3,24,32,35,52"
分析:先使用indexOf("e")
獲取第一次出現(xiàn)位置并賦值給變量pos;然后使用while語句通過循環(huán)調(diào)用indexOf(),不斷將查找起始位置設(shè)置為“pos + 1
”,從給定字符出現(xiàn)位置pos的后一位開始查找,獲取下一個出現(xiàn)位置;直到查找不到,返回-1結(jié)束。因此輸出結(jié)果為:
可以看出,給定字符“e
”在字符串stringValue中一個出現(xiàn)了5次,因為字符串位置起始于 0,而不是 1,所以出現(xiàn)位置分別為3、24、32、35、52。
然后我們來看看使用lastIndexOf()是怎么統(tǒng)計給定字符在字符串的所有出現(xiàn)位置
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()獲取所有出現(xiàn)位置其實和使用indexOf()差不多,只不過因為lastIndexOf()返回的是最后一次的出現(xiàn)位置,所以,每次循環(huán),我們都要將查找的起始位置設(shè)置為“pos - 1”。
看看輸出結(jié)果:
可以看出,獲取到的給定字符“e”在字符串stringValue中所有出現(xiàn)位置是倒序的,順序分別為:52、35、32、24、3。
到此,相信大家對“js怎么計算給定字符的全部出現(xiàn)位置”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!