JavaScript基礎(chǔ)10-String的常見方法

字符串常用方法

字符串的所有方法溜哮,都不會(huì)改變?cè)址ㄗ址牟豢勺冃裕┟ぃ僮魍瓿珊髸?huì)返回一個(gè)新的值科阎。

查找字符串

indexOf()/lastIndexOf()

獲取字符串中指定的獲取字符串中指定內(nèi)容的索引

//索引值 = str.indexOf(想要查詢的字符串);
 let str = 'testtesttest';
        //統(tǒng)計(jì)t出現(xiàn)的次數(shù)
        let index = str.indexOf('t');
        let num = 0;
        while(index != -1){
            num++;
            index = str.indexOf('t',index+1)
            
        }
        console.log(num);
  1. indexOf() 是從前向后查找字符串的位置述吸。同理,lastIndexOf()是從后向前尋找锣笨◎蛎可以檢索一個(gè)字符串中是否含有指定內(nèi)容。如果字符串中含有該內(nèi)容错英,則會(huì)返回其第一次出現(xiàn)的索引入撒;如果沒(méi)有找到指定的內(nèi)容,則返回 -1椭岩。
  2. 這個(gè)方法還可以指定第二個(gè)參數(shù)衅金,用來(lái)指定查找的起始位置。語(yǔ)法如下
索引值 = str.indexOf(想要查詢的字符串, [起始位置]);

search()

獲取字符串中指定內(nèi)容的索引

//索引值 = str.search(想要查找的字符串);
//索引值 = str.search(正則表達(dá)式);
        let str = 'testtesttest';
        //查找e,字符串中有e則返回該位置的索引
        let index1 = str.search('et');
        let index2 = str.search('est');
        console.log(index1);//-1
        console.log(index2);//1

可以檢索一個(gè)字符串中是否含有指定內(nèi)容氮唯。如果字符串中含有該內(nèi)容鉴吹,則會(huì)返回其第一次出現(xiàn)的索引;如果沒(méi)有找到指定的內(nèi)容惩琉,則返回 -1豆励。

includes()

判斷字符串中是否包含指定的內(nèi)容

//布爾值 = str.includes(想要查找的字符串, [position]);
        let str = 'testtesttest';
        let res1 = str.includes('tt',12);//true
        let res2= str.includes('tt');//false
        console.log(res1);
        console.log(res2);
  1. 判斷一個(gè)字符串中是否含有指定內(nèi)容。如果字符串中含有該內(nèi)容瞒渠,則會(huì)返回 true良蒸;否則返回 false。
  2. 參數(shù)中的 position:如果不指定伍玖,則默認(rèn)為0嫩痰;如果指定,則規(guī)定了檢索的起始位置窍箍。

startsWith()

字符串是否以指定的內(nèi)容開頭

//布爾值 = str.startsWith(想要查找的內(nèi)容, [position]);
        let str = 'testtesttest';
        let res = str.endsWith('e',6);
        console.log(res);

判斷一個(gè)字符串是否以指定的子字符串開頭串纺。如果是,則返回 true椰棘;否則返回 false纺棺。
參數(shù)中的position

  1. 如果不指定,則默認(rèn)為0邪狞。
  2. 如果指定祷蝌,則規(guī)定了檢索的起始位置。檢索的范圍包括:這個(gè)指定位置開始帆卓,直到字符串的末尾巨朦。即:[position, str.length)

endsWith()

字符串是否以指定的內(nèi)容結(jié)尾

布爾值 = str.endsWith(想要查找的內(nèi)容, [position]);

判斷一個(gè)字符串是否以指定的子字符串結(jié)尾。如果是剑令,則返回 true糊啡;否則返回 false。
參數(shù)中的position

  1. 如果不指定尚洽,則默認(rèn)為 str.length。
  2. 如果指定靶累,則規(guī)定了檢索的結(jié)束位置腺毫。檢索的范圍包括:從第一個(gè)字符串開始,直到這個(gè)指定的位置挣柬。即:[0, position)

tartsWith() 和 endsWith()這兩個(gè)方法潮酒,他們的 position 的含義是不同的

獲取指定位置的字符

charAt(index)

字符 = str.charAt(index);

返回字符串指定位置的字符。這里的 str.charAt(index)和str[index]的效果是一樣的邪蛔。注意:字符串中第一個(gè)字符的下標(biāo)是 0急黎。如果參數(shù) index 不在 [0, string.length) 之間,該方法將返回一個(gè)空字符串。

charCodeAt(index)

字符 = str.charCodeAt(index);

返回字符串指定位置的字符的 Unicode 編碼勃教。不會(huì)修改原字符串淤击。

字符串截取

slice()

//新字符串 = str.slice(開始索引, 結(jié)束索引); //兩個(gè)參數(shù)都是索引值。包左不包右故源。
        let str = 'testtesttest';
        //不傳參數(shù)相當(dāng)于截取整個(gè)字符串污抬,即字符串的重新賦值
        let str1 = str.slice();
        console.log(str1);//testtesttest
        //截取[1,4)
        let str2 = str.slice(1, 4);
        console.log(str2);//est
        //截取從索引為1的位置開始,直到結(jié)束
        let str3 = str.slice(1);
        console.log(str3);//esttesttest
        //表示從倒數(shù)第2個(gè)開始绳军,截取到最后印机。
        let str4 = str.slice(-2);
        console.log(str4);//st
        //表示從第一個(gè)截取到倒數(shù)第一個(gè)
        let str5 = str.slice(0, -1);
        console.log(str5);//testtesttes
        //開始索引大于結(jié)束索引,返回空
        let str6 = str.slice(2, 1);
        console.log(str6);//null

substring()

新字符串 = str.substring(開始索引, 結(jié)束索引); //兩個(gè)參數(shù)都是索引值门驾。包左不包右射赛。

從字符串中截取指定的內(nèi)容。和slice()類似奶是。
substring()和slice()是類似的楣责。但不同之處在于:

  1. substring()不能接受負(fù)值作為參數(shù)。如果傳遞了一個(gè)負(fù)值诫隅,則默認(rèn)使用 0腐魂。
  2. substring()還會(huì)自動(dòng)調(diào)整參數(shù)的位置,如果第二個(gè)參數(shù)小于第一個(gè)逐纬,則自動(dòng)交換蛔屹。比如說(shuō), substring(1, 0)相當(dāng)于截取的是第一個(gè)字

substr()

字符串 = str.substr(開始索引, 截取的長(zhǎng)度);

字符串中截取指定的內(nèi)容豁生。不會(huì)修改原字符串兔毒,而是將及截取到的內(nèi)容返回。注意甸箱,這個(gè)方法的第二個(gè)參數(shù)截取的長(zhǎng)度育叁,不是結(jié)束索引。
參數(shù)說(shuō)明:

  1. (2,4) 從索引值為 2 的字符開始芍殖,截取 4 個(gè)字符豪嗽。
  2. (1) 從指定位置開始,截取到最后豌骏。
  3. (-2) 從倒數(shù)第幾個(gè)開始龟梦,截取到最后.

String.fromCharCode()

String.fromCharCode():根據(jù)字符的 Unicode 編碼獲取字符。

let str = String.fromCharCode('115');

concat()

字符串連接

新字符串 = str1.concat(str2)窃躲; //連接兩個(gè)字符串

split()

字符串轉(zhuǎn)換為數(shù)組

//新的數(shù)組 = str.split(分隔符);
let str = 'testtesttest';
        let strNew = str.split('e');
        console.log(strNew);// ["t", "stt", "stt", "st"]

通過(guò)指定的分隔符计贰,將一個(gè)字符串拆分成一個(gè)數(shù)組。不會(huì)改變?cè)址?/p>

replace()

新的字符串 = str.replace(被替換的字符蒂窒,新的字符);

這個(gè)方法躁倒,默認(rèn)只會(huì)替換第一個(gè)被匹配到的字符荞怒。

repeat()

newStr = str.repeat(重復(fù)的次數(shù));

將字符串重復(fù)指定的次數(shù)。會(huì)返回新的值秧秉,不會(huì)修改原字符串褐桌。

trim()

去除字符串前后的空白。

toLowerCase()和toUpperCase()

toLowerCase()轉(zhuǎn)換成小寫福贞,toUpperCase()轉(zhuǎn)換成大寫
大小寫轉(zhuǎn)換


        let str = 'testTESTtest';
        let strNew ='';
        //遍歷數(shù)組
        for(let i = 0;i<str.length;i++){
            let ch = str.charAt(i)
            let chUn = ch.charCodeAt(); 
            //判斷字符是原來(lái)是大寫還是小寫          
            if(chUn>='65' && chUn <= '90'){
                //大寫轉(zhuǎn)小寫
                ch = ch.toLowerCase();               
            }else if(chUn>='97' && chUn <= '122'){
                //小寫轉(zhuǎn)大寫
                ch = ch.toUpperCase();
            }else{
                console.log('含有非字符');                
                break;
            }
            //將轉(zhuǎn)換后的字符拼接成新的字符串
            strNew = strNew+ch;
        }
        console.log(strNew);//TESTtestTEST
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末撩嚼,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子挖帘,更是在濱河造成了極大的恐慌完丽,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拇舀,死亡現(xiàn)場(chǎng)離奇詭異逻族,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)骄崩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門聘鳞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人要拂,你說(shuō)我怎么就攤上這事抠璃。” “怎么了脱惰?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵搏嗡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我拉一,道長(zhǎng)采盒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任蔚润,我火速辦了婚禮磅氨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嫡纠。我一直安慰自己烦租,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布除盏。 她就那樣靜靜地躺著叉橱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪痴颊。 梳的紋絲不亂的頭發(fā)上赏迟,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天屡贺,我揣著相機(jī)與錄音蠢棱,去河邊找鬼锌杀。 笑死,一個(gè)胖子當(dāng)著我的面吹牛泻仙,可吹牛的內(nèi)容都是我干的糕再。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼玉转,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼突想!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起究抓,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤猾担,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后刺下,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绑嘹,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年橘茉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了工腋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡畅卓,死狀恐怖擅腰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情翁潘,我是刑警寧澤趁冈,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站唐础,受9級(jí)特大地震影響箱歧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜一膨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一呀邢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧豹绪,春花似錦价淌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至巷蚪,卻和暖如春病毡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背屁柏。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工啦膜, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留有送,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓僧家,卻偏偏與公主長(zhǎng)得像雀摘,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子八拱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容