js常用文字列操作方法まとめ

42186 ワード

はじめに、配列の方法をまとめたばかりです.文字列の方法をまとめてみます.自分のあとで確認しやすくて、他の仲間にも助けてもらいたいです.
文字の方法:
charAt(index)&charCodeAt(index)
定義:指定された索引の文字/unicodeコードを返します.
var str="hello world"; 
console.log(str.charAt(1));//e 
console.log(str.charCodeAt(1));//101 
//                          
console.log(str[1]);//e 
文字列の方法:
1.スプリット()-文字列を配列に分割する
定義:1つの文字列を文字列配列に分割します.文法:str.splitパラメータ:seperator(オプション)、文字列または正則limitを指定して、配列の最大長さを指定します.
var myStr = "I,Love,You,Do,you,love,me";

var substrArray = myStr.split(",");
// ["I", "Love", "You", "Do", "you", "love", "me"];

var arrayLimited = myStr.split(",", 3);
// ["I", "Love", "You"];
2.文字列の切り取り
str.substring(start,end):両パラメータは正数で、戻り値:「start,end」つまりstartからend-1までの文字を返します.
str.slice(start,end):2つのパラメータは正の負の値ができます.負の値は右から切り取り、戻りの値を表します.つまり、startからend-1までの文字を返します.
str.substr(start,length):startパラメータは正負、負は右から切り取ります.
注:
  • この3つの方法は、いずれも操作文字列のサブ文字列を返して、1つまたは2つのパラメータを受信します.
  • は、これらの方法に第2のパラメータを渡さないと、文字列の長さを終了位置とします.これらの方法は文字列自体を変更することもなく、基本タイプの文字列値だけを返します.
  • slice()とsubstr()の方法における負の値は右から切り取ることを表し、他の方法における負の値はすべて0として処理される.
    var str="hello world"; 
    console.log(str.slice(3));//lo world 
    console.log(str.substring(3));//lo world 
    console.log(str.substr(3));//lo world 
    console.log(str.slice(3,7));//lo w  7                                 
    console.log(str.substring(3,7));//lo w 
    console.log(str.substr(3,7));//lo worl 7    7    
    
    console.log(str.slice(3,-4));//lo w  -4+11=7                                 
    console.log(str.substring(3,-4));//hel      console.log(str.substring(3,0)); 
    //                   ,         ,       console.log(str.substring(0,3)); 
    console.log(str.substr(3,-4));//""     
    console.log(str.substring(3,0)); //hel
    
    3.文字列の検索
    str.indexOf(search String、startIndex):サブ文字列の最初の出現の位置を返して、startIndexから探し始めて、探し出せない時は-1に戻ります.
    str.lastIndexOf(search String、startIndex):右から左へサブ文字列を検索します.見つけられない時は-1に戻ります.
    var str="hello world"; 
    console.log(str.indexOf("o"));  //4 
    console.log(str.lastIndexOf("o"));  //7 
    console.log(str.indexOf("o",6));    //7 
    console.log(str.lastIndexOf("o",6));  //4 
    
    4.文字列の大文字小文字変換
    toUpperCase():すべての文字列を大文字に変換するtoLowerCase():すべての文字列を小文字に変換します.
    var str="HELLO world"; 
    console.log(str.toLowerCase()); //hello world 
    console.log(str.toUpperCase()); //HELLO WORLD 
    
    5.文字列置換
    str.replace(rgExp/substr,replace Text):置換後の文字列を返します.
    var str="cat,bat,sat,fat"; 
    var res=str.replace("at","one");//         ,              
    console.log(res);//cone,bat,sat,fat 
    
    var res1=str.replace(/at/g,"one");//           ,             
    console.log(res1);//cone,bone,sone,fone 
    
    6.文字列スティッチング
    str.co ncat(str 1,str 2)
    var str="hello "; 
    var res=str.concat("world"); 
    console.log(res);  //hello world 
    console.log(str);  //hello                 
    var res1=str.concat("nihao","!"); 
    console.log(res1);  //hello nihao!    concat             
    //  concat             ,                  +,       
    
    7.文字列の先頭のスペースを削除します.
    str.trim():文字列の前後のスペースを削除します.
    var str="   hello world   "; 
    console.log('('+str.trim()+')');  //(hello world) 
    console.log('('+str+')');  //(   hello world   )
    
    8.文字列パターンマッチング
    match():1つのパラメータしか受け入れられません.文字列またはRegExpオブジェクトによって指定された正規表現search():1つのパラメータしか受け付けません.文字列またはRegExpオブジェクトによって指定された正規表現です.
    searchメソッドは、文字列の最初のマッチする項目のインデックスを返します.マッチしていない場合は、-1を返します.
    var str="cat,bat,sat,fat"; 
    var pattern=/.at/; 
    var matches=str.match(pattern); 
    console.log(matches.index);//0 
    console.log(matches[0]);//cat 
    console.log(pattern.lastIndex);//0 
    //lastIndex                 , 0   
    var pos=str.search(/at/); 
    console.log(pos);//1 1  at                   
    
    9.文字列の比較
    str.locale Compare(str 1):2つの文字列を比較します.
  • 文字列が文字列パラメータの前に並べば、負の値
  • を返します.
  • 文字列が文字列パラメータに等しい場合、0
  • を返します.
  • 文字列が文字列パラメータの後に並べば、正数
  • を返します.
    var str="yellow"; 
    console.log(str.localeCompare("brick")); //1 
    console.log(str.localeCompare("yellow")); //0 
    console.log(str.localeCompare("zoo")); //-1 
    
    10.from CharCodeの方法
    str.from CharCode(文字コード):1つ以上の文字コードを受信し、文字列に変換します.
    from CharCode方法はStringコンストラクタの静的な方法である.
    console.log(String.fromCharCode(104,101,108,108,111));//hello 
    
    総合例
    例1:マッチする文字列の位置を見つけます.
    <!DOCTYPE html> 
    <html lang="en"> 
      <head> 
        <meta charset="utf-8"> 
        <title>     </title> 
      </head> 
      <body> 
      <script type="text/javascript"> 
      /*              */
        var str="asadajhjkadaaasdasdasdasd"; 
        var position=[]; 
        var pos=str.indexOf("d"); 
        while(pos>-1){ 
          position.push(pos); 
          pos=str.indexOf("d",pos+1); 
        } 
        console.log(position);//[3, 10, 15, 18, 21, 24] 
      </script> 
      </body> 
    </html>
    
    例2:文字列の削除
    <!DOCTYPE html> 
    <html lang="en"> 
      <head> 
        <meta charset="utf-8"> 
        <title>     </title> 
      </head> 
      <body> 
      <script type="text/javascript"> 
      //String.split()        Array.join           
      //split()                   。 
      //join                   
      //        ("")    separator,   stringObject              。 
        var str="aahhgggsssjjj";//              ,                
        function unique(msg){ 
          var res=[]; 
          var arr=msg.split(""); 
          //console.log(arr); 
          for(var i=0;i<arr.length;i++){ 
            if(res.indexOf(arr[i])==-1){ 
              res.push(arr[i]); 
            } 
          } 
          return res.join(""); 
        } 
        console.log(unique(str));//ahgsj 
      </script> 
      </body> 
    </html>
    
    例3:文字列に登場する文字の数を判断する
    <!DOCTYPE html> 
    <html lang="en"> 
      <head> 
        <meta charset="utf-8"> 
        <title>     </title> 
      </head> 
      <body> 
      <script type="text/javascript"> 
      /* 
      1.         
      2.          for    ,               ,     count++,     count   sum   ,   count   0 
      3.                         sum             
       */
        var str="aacccbbeeeddd"; 
        var sum=[]; 
        var res=[]; 
        var count=0; 
        var arr=str.split(""); 
        for(var i=0;i<arr.length;i++){ 
          if(res.indexOf(arr[i])==-1){ 
            res.push(arr[i]); 
          } 
        } 
        for(var i=0;i<res.length;i++){ 
          for(var j=0;j<arr.length;j++){ 
            if(arr[j]==res[i]){ 
              count++; 
            } 
          } 
          sum.push(count); 
          count=0; 
        } 
        console.log(res);//["a", "c", "b", "e", "d"] 
        for(var i=0;i<res.length;i++){ 
          var str=(sum[i]%2==0)?"  ":"  "; 
          console.log(res[i]+"   "+sum[i]+" "); 
          console.log(res[i]+"   "+str+" "); 
        } 
      </script> 
      </body> 
    </html>
    
    アリ面接-文字列操作
    <script type="text/javascript"> 
      var str = "www.taobao.com"; 
      var res = str.split("").reverse().join("").replace('oat',''); 
      console.log(res);//moc.oab.www 
    </script>
    
    添付参考リンク:https://www.jb51.net/article/97915.htm