JavaScript文字列方法大全書


配列と文字列は筆記問題の中で最も頻度の高い2種類のデータタイプで、前のブログではJavaScript配列の方法をまとめました.このブログでは文字列の方法をまとめます.文字列と配列の方法が似ているので、読み手は比較して読みます.
Stringタイプは、文字列の解析と動作の完了を支援する多くの方法を提供する.文字列を操作する方法は主に以下の通りです.
  • charAt()とcharCodeAt()
  • indexOf()とlastIndexOf()
  • concat()
  • slice()
  • substr()
  • substring()
  • trim()
  • toLowerCase()とtoUpperCase()
  • match()
  • search()
  • replace()
  • スプリット()
  • locale Compare()
  • from CharCode()
  • それぞれの方法の具体的な使い方を紹介します.
    1、charAt()とcharCodeAt()
    charAt():指定された索引位置の文字を返すパラメータを受信します.なお、JavaScriptにはcharタイプがないので、戻りは1の長さの文字列です.
    charCodeAt():charAt()の方法と似ていますが、返ってくるのは文字ではなくインデックス位置に対応する文字コードです.
    var str = "hello world";
    console.log(str.charAt(4)); // o
    
    console.log(str.charCodeAt(4)); //111
    
    console.log(str[4]); //o
    上記のコードは、charAt(4)を通じてインデックス4の文字「o」を見つけ、charCodeAt(4)を通じてインデックス4の文字「o」の文字コード「111」を見つけました.ES 5はまた、他の個々の文字にアクセスする方法を定義し、四角い括弧と数字の索引を用いて文字列内の特定の文字にアクセスすることができる.
    2、indexOf()とlastIndexOf()
    indexOf():文字列の先頭から指定されたサブ文字列を後ろに検索し、サブ文字列の位置を返します.
    lastIndexOf():作用はindexOf()と同じで、lastIndexOf()は文字列の最後から前へサブ文字列を検索します.
    この2つの方法はいずれも2つのパラメータを受信することができます.最初は検索を必要とするサブ文字列で、2番目は文字列のどの位置から検索を開始しますか?
    var str = "hello world";
    
    console.log(str.indexOf("l")); //2
    console.log(str.lastIndexOf("l")); //9
    
    console.log(str.indexOf("l",4)); //9
    console.log(str.lastIndexOf("l",4)); //3
    3、concat()
    concat():1つ以上の文字列をつなぎ合わせて、スティッチングした新しい文字列を返します.複数のパラメータが受信され、スティッチングが必要な文字列を表します.
    var str = "hello world";
    var strConcat = str.concat("!"," Welcome to my blog!");
    console.log(str); // hello world (      )
    console.log(strConcat); // hello world! Welcome to my blog!
    実際の応用では、文字列をつなぎ合わせるなら、一番よく使われているのは番号付けの操作子「+」です.この方法はconcat()よりもっと簡単です.
    var str = "hello world";
    var strConcat2 = str + "!" + " Welcome to my blog!";
    console.log(strConcat2); // hello world! Welcome to my blog!
    4、slice()
    slice():文字列から一段のサブ文字列を切り取り、二つのパラメータを受け取ります.最初のパラメータはサブ文字列の開始位置を指定し、二番目のパラメータはサブ文字列の最後の文字の後の位置を指定します.この方法は元の文字列には影響がない.
    var str = "hello world";
    console.log(str.slice(2)); //llo world
    console.log(str.slice(2,8)); //llo wo
    
    console.log(str.slice(-9)); //llo world
    console.log(str.slice(2,-3)); //llo wo
    上記のコードでは、入力されたパラメータがマイナスの場合、この負の値に文字列の長さを加えて正の値に変換し、切り取りを行います.入力された負の絶対値が文字列の長さよりも大きい場合、0で置換されます.
    5、substr()
    substr():一つの文字列から一段のサブ文字列を切り取る方法でもあり、二つのパラメータを受信する.一つは切り取りの開始位置であり、二つ目のパラメータは切り取りのサブ文字列の長さである.この方法は元の文字列には影響がない.
    var str = "hello world";
    console.log(str.substr(2)); //llo world
    console.log(str.substr(2,8)); //llo worl
    
    console.log(str.substr(-9)); //llo world
    console.log(str.substr(-9,8)); //llo worl
    console.log(str.substr(-9,-8)); //     
    二つのパラメータが入ると、第二のパラメータはサブ文字列の長さを表します.最初のパラメータが負の値に入ると、同様に文字列の長さをプラスの値に変換しますが、2番目のパラメータは文字列の長さを切り取り、負の値が入ってくると空の文字列を切り取ります.
    6、substring()
    substring():同じ文字列から一段のサブ文字列を切り取り、受信したパラメータもsliceと同じですが、着信したパラメータが負数の場合、処理方式はslice()とは異なります.この方法は元の文字列には影響がない.
    var str = "hello world";
    console.log(str.substring(2)); //llo world
    console.log(str.substring(2,8)); //llo wo
    
    console.log(str.substring(-9)); //hello world
    console.log(str.substring(-9,8)); //hello wo
    console.log(str.substring(-9,-8)); //     
    パラメータが正数である場合、結果はslice()方法と同じです.パラメータが負の場合は、負の数にかかわらず、負の数を0に変えます.
    7、trim()
    trim():この方法はES 5の新規作成方法で、文字列の前置および拡張子のすべてのスペースを削除します.
    var str = " hello world ";
    var strCopy = str.trim();
    console.log(str); //" hello world "
    console.log(strCopy); //"hello world"
    ES 5が追加された方法なので、ブラウザの互換性に注意が必要です.現在この方法をサポートしているブラウザのバージョンはIE 9+、Firefox 3.5+、Safari 5+、Opera 10.5+、Chromeがあります.また、Firefox 3.5+、Safari 5+、Chrome 8+は標準ではないtrimLeft()とtrimRight(メソッド)をサポートしています.
    8、タワーケース()とトップケース()
    LowerCase():文字列全体を小文字に変換します.toUpperCase():文字列全体を大文字に変換します.
    他にも二つの方法があります.toLocareLowerCase()とtoLocareUpperCase()は特定の地域に対する方法です.ほとんどの地域では、地域の方法とその共通の方法で得られた結果は同じですが、少数の言語(トルコ語のような)はユニックサイズの書き換えに特別なルールを適用します.この場合、地域向けの方法を使用して正しい変換を保証しなければなりません.そのため、自分のコードがどの言語環境で実行されるか分からない場合は、やはり地域に対する方法を使ったほうが無難です.
    var str = "HellO WoRlD"; 
    console.log(str.toLowerCase()); //hello world
    console.log(str); //HellO WoRlD(      )
    console.log(str.toLocaleLowerCase()); //hello world
    
    console.log(str.toUpperCase()); //HELLO WORLD
    console.log(str.toLocaleUpperCase()); // HELLO WORLD
    9、match()
    match():正規表現にマッチする文字列かどうかを確認します.最初のマッチのみが返されます.マッチが見つからない場合は、空の値を返します.
    var myString = "welcome to my blog blog blog...";
    var myPattern = /.og/;
    var myResult = myString.match(myPattern); 
    console.log(myResult);// ["log", index: 15, input: "welcome to my blog blog blog..."] 
    console.log(myResult[0]); // "log"
    console.log(myResult.index);// 15 
    console.log(myResult.input);// "welcome to my blog blog blog..."
    
    var myPattern2 = /.oog/;
    var myResult2 = myString.match(myPattern2);
    console.log(myResult2); //null
    上記のコードの中のmatch()方法は、配列の第一項がモード全体にマッチする文字列であり、第二項は該当文字列の索引であり、第三項は元の入力文字列である行列を返します.この方法はRegExpオブジェクトのexec()方法と似ている.正規表現については次のブログで紹介します.
    10、search()
    search():この方法はmatch()方法と類似しており、一つの文字列または正規表現が入ってきて、マッチング検索を行う.検索が成功すると、文字列にマッチする索引の値が返されます.さもないと-1を返します.match()法と違って、search()法は一つの配列ではなく一つの値だけを返します.
    var myString = "welcome to my blog blog blog...";
    var myPattern = /.og/;
    var myResult = myString.search(myPattern); 
    console.log(myResult);// 15
    11、replace()
    replace():マッチする文字列を検索して、マッチする文字列の代わりに新しい文字列を使用します.この方法は2つのパラメータを受け入れます.最初のパラメータは一つのRegExpオブジェクトまたは一つの文字列(この文字列は正規表現に変換されません.)であり、2番目のパラメータは1文字列または1つの関数であります.
    最初のパラメータが文字列である場合は、最初のサブ文字列だけが置換されます.すべてのサブ文字列を置換するには、正規表現を提供し、グローバル(g)フラグを指定する唯一の方法があります.
    var str = "cat, bat, sat, fat";
    var result = str.replace("at", "ond");
    console.log(result); //"cond, bat, sat, fat"
    result = str.replace(/at/g, "ond");
    console.log(result); //"cond, bond, sond, fond"
    replace()法の第二パラメータは関数であってもよい.この関数は3つのパラメータを受け入れます.モードのマッチング項目、モードマッチング項目は文字列内の位置と元の文字列です.
    var str = "cat, bat, sat, fat";
    str.replace("at", function(match, index, originalText){
        console.log(match+":"+index+":"+originalText);
    });
    // at:1:cat, bat, sat, fat
    
    str.replace(/at/g, function(match, index, originalText){
        console.log(match+":"+index+":"+originalText);
    });
    // at:1:cat, bat, sat, fat
    // at:6:cat, bat, sat, fat
    // at:11:cat, bat, sat, fat
    // at:16:cat, bat, sat, fat
    12、スプリット()
    スプリット():指定されたセパレータに基づいて1つの文字列を複数のサブ文字列に分割し、結果を1つの配列に配置します.この方法は文字列を行列に変換するための一般的な方法である.split()メソッドは2つのパラメータを受信します.最初のパラメータはセパレータであり、文字列であっても良いし、RegExpオブジェクトであってもいいです.2番目のパラメータは、戻り行列のサイズです.
    var str = "cat, bat, sat, fat";
    var strArr = str.split(",");
    console.log(strArr); // ["cat", " bat", " sat", " fat"]
    var strArr2 = str.split(",",2);
    console.log(strArr2); // ["cat", " bat"]
    13、locale Commpare()
    locale Compare():2つの文字列を比較し、比較結果に基づいて値を返します.この方法は、比較する文字列パラメータであるパラメータを受信する.
  • 文字列が文字列パラメータの前に並ぶべきである場合、負の値を返します.ほとんどは-1です.
  • を返します.
  • 文字列が文字列パラメータに等しい場合、0を返します.
  • 文字列がアルファベット内に文字列パラメータの後に並ぶべきである場合、正数を返します.
    var str = "sean";
    console.log(str.localeCompare("lily")); // 1
    console.log(str.localeCompare("sean")); // 0
    console.log(str.localeCompare("Tom"));  // -1
    14、from CharCode()
    from CharCode():1つ以上の文字コードを受信し、文字列に変換します.この方法はString構造関数自体の静的方法である.この方法は前述のcharCodeAt()法とは正反対である.
    console.log(String.fromCharCode(104, 101, 108, 108, 111)); //"hello"