一、查找字元串的位置(找到返回字元串首字母的位置,找不到返回-1): indexOf("string"):查找字元串string在字元串中首次出現的位置; indexOf("string",number):從number位置開始往後查找字元串string在字元串中首次出現的位置;number為負數從 ...
一、查找字元串的位置(找到返回字元串首字母的位置,找不到返回-1): indexOf("string"):查找字元串string在字元串中首次出現的位置; indexOf("string",number):從number位置開始往後查找字元串string在字元串中首次出現的位置;number為負數從右側開始往右查找,直到字元串結束。 lastIndexOf("string"):查找字元串string在字元串中最後出現的位置; lastIndexOf("string",number):從number位置開始往後查找字元串string在字元串中最後出現的位置;number為負數從右側開始往右查找,直到字元串結束。 search("string"):和indexOf一樣,區別(不能帶參數)。 二、截取字元串:slice、substring、substr比較
方法 | 參數 | 參數為一個 | 參數都為正 | 參數為負 | |
slice |
接收的是起始位置和結束 位置(不包括結束位置) |
省略結束位置參數,從參數位置開始截取 到字元串結束,負參數從左開始往右截取 |
起始位置大於結束位置, 返回空 |
參數都為負: 從負參數開始截取到負參數結束(起始位置<結束位置) (起始位置>結束位置)//報錯 開始為正,結束為負: 從正參數開始截取到負參數結束 開始為負,結束為正:返回為空 |
|
substring | 參數中有負值,將其轉化成0。兩個參數中較小的一個作為起始位置。 |
||||
substr |
接收的是起始位置和所要 返回的字元串長度 |
和slice一樣 |
返回字元串長度不能為負值(沒有意義)。 如果參數為負,相當於截取字元串長度為0. |
var str="good good study"; var res=str.replace(/GOOD/ig,"day");//day good study(預設匹配首個字元串)
2.全局替換:
var str="good good study"; var res=str.replace(/GOOD/g,"day");//day day study
四、轉化為大寫或小寫:
toUpperCase():將都有字元串中的字母都轉化成大寫;
toLowerCase():將都有字元串中的字母都轉化成小寫;
var str="good good study"; console.log(str.toUpperCase());//全部轉化大寫(GOOD GOOD STUDY) console.log(str.toLowerCase());//全部轉化小寫(good good study)
五、連接兩個字元串或多個concat()
var one="hello",two="world",three="!!!"; var x=one.concat("+","abc",three); console.log(x)//hello abc !!! var x=one.concat("+",two,three); console.log(x)//hello world !!! //--代替連接符 var x= "hello".concat(" ","world"); var x= "hello".concat(" ","world"," ","world"); console.log(x)//hello world world
六、刪除字元串兩端的空白trim()
//刪除字元串兩端的空白符trim() var str = " Hello World! "; console.log(str.trim());//Hello World; //去左空格; /*function ltrim(s){ return s.replace(/(^\s*)/g,"");//去除左空格 }*/ //去右空格; /*function rtrim(s){ return s.replace(/(\s*$)/g,"");//去除右空格 }*/ console.log(ltrim(str));
七、提取字元串字元charAt(i)
var str = "HELLO WORLD"; console.log(str.charAt(0)); //H
八、返回字元串中指定索引的字元 unicode 編碼
var str = "HELLO WORLD"; console.log(str.charCodeAt(0));//72九、字元串轉化成數組split()
var txt = "at,b,cpp,d,e"; // 字元串 var test=txt.split(","); // 用逗號分隔 var test1=txt.split(" "); // 用空格分隔 var test2=txt.split("|"); // 用豎線分隔 console.log(test);//返回數組[0:at,1:b,···] //如果字元串之間沒有符號 var txt = "H,ello"; // 字元串 var txt_= txt.split("");// 分隔為字元 console.log(txt_); //返回數組[0:H,1:,,···] var a=txt_.join("");//數組轉化成字元串 console.log(txt_); //H,ello
練習:
//查找字元串中有多少個e var str="there is no challess there will be no success"; var sum=0; for(var i=0;i<str.length;i++){ if(str.charAt(i)=="e"){sum+=1}; } console.log(sum) //正則表達式查找有多少個e var str="there is no challess there will be no success"; var res=str.match(/e/g); console.log(res.length); //查找字元串中任意字元串(查找第二個good) var str="good good study"; function indexof(str1,str2,num){//str1字元串,str2查找的字元串,num查找的第幾個(0代表第一個) var res=str.indexOf(str2); for(var i=0;i<num;i++){ res=str1.indexOf(str2,res+1); } return res } console.log(indexof(str,"good",1)); //替換第二個good var str="good good good study"; function rep_str(str1,str2,str3,num){//str1字元串,str2需要替換的字元串,str3替換的字元串,num替換的第幾個 var sum=0; var strall=str.split(" "); for( var i=0; i<str.length;i++){ if(strall[i]==str2){ sum+=1; if(sum==num){ strall[i]=str3 } } } var res=strall.join(" "); return res } console.log(rep_str(str,"good","day",2));