站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        js字符串學(xué)習(xí)之計(jì)算給定字符的全部出現(xiàn)位置

        在之前的文章《js怎么知道給定子串是不是存在》中,我們介紹了通過獲取子串在字符串的第一次或最后一次出現(xiàn)位置的方法。這次我們加大難度,看看如何獲取子串在字符串的所有出現(xiàn)位置。

        我們?cè)谥暗奈恼轮辛私獾绞褂胕ndexOf()和lastIndexOf()函數(shù)可以獲取子串在第一次出現(xiàn)位置和最后一次出現(xiàn)位置;如果沒有找到該子串,則返回-1。

        而這兩個(gè)函數(shù)都可接收可選的第二個(gè)參數(shù)start,值只能是一個(gè)整數(shù),表示從字符串中的哪個(gè)位置開始搜索,取值范圍是 0 ~ length-1。lastIndexOf()如果指定了start參數(shù),則在一個(gè)字符串中的指定位置從后向前搜索。

        利用這個(gè)可選的第二個(gè)參數(shù)start和循環(huán)語句,我們就可以計(jì)算給定子串(包含一個(gè)或多個(gè)字符)的全部出現(xiàn)位置。

        首先看看使用indexOf()是怎么統(tǒng)計(jì)給定字符在字符串的所有出現(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的后一位開始查找,獲取下一個(gè)出現(xiàn)位置;直到查找不到,返回-1結(jié)束。因此輸出結(jié)果為:

        js字符串學(xué)習(xí)之計(jì)算給定字符的全部出現(xiàn)位置

        可以看出,給定字符“e”在字符串stringValue中一個(gè)出現(xiàn)了5次,因?yàn)樽址恢闷鹗加?0,而不是 1,所以出現(xiàn)位置分別為3、24、32、35、52。

        然后我們來看看使用lastIndexOf()是怎么統(tǒng)計(jì)給定字符在字符串的所有出現(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)位置其實(shí)和使用indexOf()差不多,只不過因?yàn)閘astIndexOf()返回的是最后一次的出現(xiàn)位置,所以,每次循環(huán),我們都要將查找的起始位置設(shè)置為“pos – 1”。

        看看輸出結(jié)果:

        js字符串學(xué)習(xí)之計(jì)算給定字符的全部出現(xiàn)位置

        可以看出,獲取到的給定字符“e”在字符串stringValue中所有出現(xiàn)位置是倒序的,順序分別為:52、35、32、24、3。

        好了,就說到這里了,有需要的可以看:javascript高級(jí)教程

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 久久线看观看精品香蕉国产| 毛片a精品**国产| 刺激无码在线观看精品视频| 亚洲国产美女精品久久久久∴| 日韩精品区一区二区三VR| 国产精品亚洲综合专区片高清久久久| 国产探花在线精品一区二区| 亚洲精品99久久久久中文字幕| 国产午夜精品久久久久九九电影| 国产精品久久久久久| 久久亚洲欧美国产精品 | 精品久久久无码人妻中文字幕豆芽| 精品日本一区二区三区在线观看| 日韩精品一区二区三区四区| 成人伊人精品色XXXX视频| 日韩精品久久久久久免费| 一夲道无码人妻精品一区二区 | 国产A∨免费精品视频| 国产成人亚洲精品| 久久九九精品99国产精品| 中文字幕九七精品乱码 | 人精品影院| 97精品国产高清自在线看超| 久久精品视频网| 久久精品免费一区二区三区| 欧美精品高清在线xxxx| 久久线看观看精品香蕉国产| 99久久国语露脸精品国产| 91麻豆精品视频| 99久久精品费精品国产一区二区| 国产精品自在线拍国产| 国产精品成熟老女人视频| 国产欧美日韩精品丝袜高跟鞋| 精品久久久久久无码专区| 国产精品兄妹在线观看麻豆| 国产伦精品免编号公布| 精品国产一区二区三区无码| 国产精品对白交换视频| 精品无人区麻豆乱码1区2区| 精品一区二区在线观看| 午夜精品成年片色多多|