JavaScript字串物件 之 根據字元返回位置、根據位置返回字元、字串操作方法

辣味蓓蓓醬發表於2020-12-27

一、根據字元返回位置

字串所有方法都不會修改字串本身(字串是不可變的),操作完成會返回一個新的字串。

方法名說明
indexOf('要查詢的字元',開始的位置)返回指定內容在原字串中的位置,如果找不到就返回-1,開始的位置是index索引號
lastIndexOf()從後往前找,只找第一個匹配的
var str = '改革春風吹滿地,春天來了';
console.log(str.indexOf('春')); //3
console.log(str.indexOf('春',3)); //8

案例:返回字串位置

查詢字串“abcoefoxyozzopp”中所有o出現的位置以及次數

  • 核心演算法:先查詢第一個o出現的位置
  • 只要indexOf返回的結果不是-1,就繼續往後查詢
  • 後面的查詢利用第二個引數,當前索引加1,從而繼續查詢 
var str = "abcoefoxyozzopp";
var index = str.indexOf('o');
var num = 0;
while (index !== -1) {
    consloe.log(index);
    num++;
    index = str.indexOf('o',index + 1);
}
console.log('o出現的次數是' + num);

二、根據位置返回字元

方法名說明使用
charAt(index)返回指定位置的字元(index 字串的索引號)str.charAt(0)
charCodeAt(index)獲取指定位置處字元的ASCII碼(index索引號)str.charCodeAt(0)
str[index]獲取指定位置處字元HTML5,IE8+支援和charAt()等效
var str = 'andy';
console.log(str.charAt(3)); //y
console.log(str.charCodeAt(0)); //97
console.log(str[0]); //a

案例:返回字元位置

判斷一個字串“abcoefoxyozzopp”中出現次數最多的字元,並統計其次數。

var str = 'abcoefoxyozzopp';
var o = {};
for ( var i = 0; i <= str.length; i++) {
    if (o[chars]) {
        o[chars]++;
    }else {
        o[chars] = 1;
    }
}
console.log(o);
var max = 0;
var ch = '';
for (var k in o) {
    if(o[k] > max) {
        max = o[k];
        ch = k;
    }
}
console.log(max);
console.log('最多的字元是'+ch);

三、字串操作方法

方法名說明
concat(str1,str2,str3...)concat()方法用於連線兩個或多個字串。拼接字串,等效於+,+常用
substr(start,length)從start位置開始(索引號),length取的個數
slice(start,end)從start位置開始,擷取到end位置,end取不到
substring(start,end)從start位置開始,擷取到end位置,end取不到,基本和slice相同,但是不接受負值
replace('被替換的字元','替換為的字元')只會替換第一個字元
split('分隔符')將字元按分隔符劃分,轉換為陣列
var str = 'andy';
console.log(str.concat('red'));
var str1 = '改革春風吹滿地';
console.log(str1.substr(2,2)); //春風
//1.替換字元 replace('被替換的字元','替換為的字元') 只會替換第一個字元
var str = 'andyandy';
console.log(str.replace('a','b')); //bndyandy
//將字串‘abcoefoxyozzopp’中所有的o替換為*
var str1 = 'abcoefoxyozzopp';
while (str1.indexOf('o') != -1) {
    str1 = str1.replace('o','*');
}
console.log(str1); //abc*ef*xy*zz*pp
//2.將字元轉換為陣列 split('分隔符')
var str2 = 'red,pink,blue';
console.log(str2.split(',')); //["red","pink","blue"]
var str2 = 'red&pink&blue';
console.log(str2.split('&')); //["red","pink","blue"] 

 

 

 

 

 

 

 

 

 

 

相關文章