第09節文字列操作と数学関数

7589 ワード

一、文字列操作
ヒント:==JavaScriptの文字列は可変ではありません.==文字列の変化に関する操作は、ソース文字列を変更することなく、新しい文字列を作成します.
1.1文字列の作成
JavaScriptには、基本タイプの文字列と、オブジェクトタイプ(参照タイプ)の文字列があります.
  • 基本タイプの文字列を取得するには、一般的に2つの方法があります.
  • は文字列の直接量を使用する.例えば、「good」
  • var s = "good"; // s         
    alert(typeof s);  //  : string
    
  • は、String()変換関数を使用する.(ここはnewキーワードを使わないので注意してください)
  • var s = String(123);  //        Number        String. (           。)
    alert(typeof s); //   : string
    
  • は、参照タイプの文字列を取得する.キーワードnewによりString()構造方法を使用します.この場合、オブジェクトとして取得され、参照タイプ
  • var s = new String("abc");
    alert(typeof s);  //  :object
    
    注意:
  • ==new=キーワードで取得したのは==参照タイプ(オブジェクトタイプ)==の文字列です.==new=を使わないのは=基本タイプ=の文字列
  • です.
    1.2文字列の==length属性==
    文字列のlength属性の値は文字列の文字数を表します.
    var s = "abc";
    var s = "123  ";
    //     ,         ,                   
    alert(s.length);  //   :3
    alert(s.length);  //   :5
    
    1.3文字列の常用方法
    1.3.1文字に関する方法
  • s.chart(index)
  • indexが必要です.文字列の位置を表す数字、つまり文字列の下付き文字です.
    戻り値:指定された位置の文字を返します.しかし、Javascriptには文字タイプがありません.実は1の長さの文字列が返ってきます.
    説明:文字列を配列に想像できます.彼の下付きも0から始まります.最後の要素の下付きはs.length-1です.
    var s = "a  bcd";
    alert(s.charAt(0)); //   :  a
    alert(s.charAt(2)); //   :  
    //  ,         ,            ,s[index]
    alert(s[0]);  //    :s.charAt(0)
    
  • s.charCodeAt(index)
  • 指定された位置の文字のユニックコードを返します.この戻り値は0-65535間の整数です.
    var s = "a  bcd";
    alert(s.charCodeAt(0)); //   :  97
    alert(s.charCodeAt(2)); //   : 22909
    
    1.3.2文字列の接続方法
    s.co ncat(strigX、strigX、…、strigX)方法は、2つ以上の文字列を接続するために使用されます.
    注意:
  • は、ソース文字列
  • を変更しません.
  • 実際の開発では、文字列コネクタ(+)を使用して、より簡潔な
  • var s = "  ";
    alert(s.concat(" ", "  ")); //   :      
    //          0     ,           (this).
    alert(s.concat("") === s);  //   : true
    
    1.1.3サブ文字列の出現位置を検索する
  • s.indexOfメソッドは、指定された文字列値が文字列で初めて現れる場所を返すことができます.
  • search valueが必要です.検索する文字列の値を指定します.
  • froomindexオプションの整数パラメータです.文字列で検索を開始する位置を指定します.その合法的な値は0からs.length-1までです.このパラメータを省略すると、文字列の先頭文字から検索が開始されます.
  • var v = "abcabdefgh";
    //   2   ,            
    alert(s.indexOf("ab"));  //  : 0
    //     1        
    alert(s.indexOf("ab", 1)); //  : 3
    
  • s.lastIndexOfメソッドは、指定された文字列値の最後に現れた位置を返し、文字列の指定された位置を後から前へ検索します.
    search value
    必要です.検索する文字列の値を指定します.
    froomindex
    任意の整数パラメータです.文字列で検索を開始する位置を指定します.その合法的な値は0からs.length-1までです.このパラメータを省略すると、文字列の最後の文字から検索が開始されます.
  • var s = "abcabcdab";
    alert(s.lastIndexOf("ab")); //  : 7
    alert(s.lastIndexOf("ab", 5)) //  :3
    
    1.3.4文字列を切り取る
  • s.substring方法は、文字列の中の2つの下付き文字を抽出するために用いられる.
  • パラメータ
    説明
    start
    必要です.負でない整数は、抽出するサブストリングの最初の文字のsの位置を規定しています.
    stop
    オプション.負でない整数.このパラメータを省略すると、返したサブストリングは文字列の最後まで続きます.==切り取りの結果には、stop位置の要素は含まれません.==
    var s = "     ";
    //       ,           ,        。         
    alert(s.substring(1));  //   :    
    //   1:         2:       。        :         
    alert(s.substring(1, 3)); //   :  
    
  • s.substr(start,length)方法は、startの下付きから指定された数の文字を文字列から抽出することができる.
  • パラメータ
    説明
    start
    必要です.抽出するサブストリングの開始値を下に表示します.数値が必要です.負の数であれば、このパラメータ宣言は文字列の末尾から計算される位置です.つまり、-1は文字列の最後の文字を指し、-2は後ろから2番目の文字を指し、これを類推します.
    length
    オプション.サブストリングの文字数.数値が必要です.このパラメータを省略すると、stingObjectの開始位置から最後の文字列に戻ります.
    var s = "     ";
    //       ,           ,        。             
    alert(s.substr(1)); //   :    。   
    //   1:         2:     。
    alert(s.substr(1, 3)); //   :   
    
  • s.slice(start,end)方法は、文字列のある部分を抽出し、抽出された部分を新しい文字列で返すことができる.
  • 注意:この方法はsubstringの使い方と同じです.sliceだけで負の値が許されます.
    パラメータ
    説明
    start
    抽出するセッションの開始値を下に表示します.負の数であれば、このパラメータは文字列の末尾から計算される位置を規定しています.つまり、-1は文字列の最後の文字を指し、-2は下から2番目の文字を指し、これを類推します.
    end
    抽出するセグメントの末尾の下付き.このパラメータが指定されていない場合、抽出するサブストリングは、startから元の文字列の最後までの文字列を含みます.このパラメータが負の場合、文字列の末尾から計算される位置を規定します.
    var s = "     ";
    //     ,  substring  。
    alert(s.slice(0, 1))    //   :  
    alert(s.slice(-3, -1))  //   :   
    
    1.3.4大文字と小文字の変換方法
  • s.toUpperCase文字列のすべての文字が大文字
  • に変換されました.
    var s = "abcAbc";
    alert(s.toUpperCase());  // ABCABC
    
  • s.towerCase文字列のすべての文字は小文字
  • に変換されます.
    var s = "ABcAbc";
    alert(s.toLowerCase());
    
    1.3.5文字列の先頭の空白文字を削除する
    s.trim():文字列の先頭の空白文字をすべて取り除くだけです.文字列内部の空白文字は何も処理しません.
    var s = " 
    \t ABc Abc \t
    \t"; alert(s.trim());//ABc Abc
    1.1.6文字列の置換方法
  • s.replace(regexp/substr,replaccement)メソッドは、文字列の中で他の文字を一部の文字に置き換えたり、正規表現と一致する部分列を置き換えるために使用されます.
  • パラメータ
    説明
    regexp/substr
    必要です.サブ文字列または置換するモードのRegExpオブジェクトを指定します.この値が文字列の場合、最初にRegExpオブジェクトに変換されるのではなく、検索する直接量テキストモードとして使用されます.
    replace ment
    必要です.文字列の値.テキストの置換または置換テキストを生成する関数が定められています.
    説明:
  • 正規表現は、理解するだけです.後で詳しく話しますabc/gi
  • 普通の文字列であれば、最初の要求を満たすものだけを置き換える.
  • var s = "abcaba";
    // "ab"       ,   js       ab
    var newStr = s.replace("ab", "js"); // jscaba
    alert(newStr); //  :jscaba
    //        :   /  /  
    alert(s.replace(/ab/gi, js));  //     ab,      
    
  • s.match(マッチ値):指定された値を文字列内で検索する
  • にマッチするパラメータは一つしかなく、正規表現か、文字列項目
  • です.
  • 戻り値:マッチング結果を格納する配列
  • var s = "abcaba";
    var arr = s.match("ab"); //         ,         
    alert(arr); // ["ab"]
    alert(s.match(/ab/gi)); // ["ab", "ab"]
    
    var s1 = "    20xx xx x ";
    //       
    var nums = s1.match(/\d+/gi);
    console.log(nums.toString()); //   : 20xx,xx,x
    
  • s.search(整合パラメータ)
  • にマッチするパラメータは一つしかなく、正規表現か、文字列
  • です.
  • は、値を返します.最初の一致項目の索引がないと、-1に戻り、常に文字列のヘッダから検索を開始し、大域g
  • を無視します.
    var s = "abcaba";
    var arr = s.search("ab"); //        ,       ,      。      
    alert(arr); // 0
    alert(s.search(/ab/gi)); // 0      
    
    var s1 = "   20xx xx x ";
    //       
    var nums = s1.search(/\d+/gi);
    console.log(nums.toString()); //   : 4
    
    1.3.7文字列の比較
  • ==2つの文字列の=内容=が等しいかどうかを比較します.内容が等しい限りtrueに戻ります.
  • var s = "   20xx xx x ";
    var s1 = new String("   20xx xx x ");
    //             ,         ,           。      true
    alert(s == s1);  
    
  • ==恒などは、タイプと内容が同じ場合だけtrue
  • に戻ります.
    var s1 = "   20xx xx x ";
    var s2 = String("   20xx xx x ");  //      ,         string
    var s3 = new String("   20xx xx x ");
    var s4 = new String("   20xx xx x ");
    
    //        ,   
    alert(s1 === s2);   // true
    //      ,      。      
    alert(s1 === s3);   //false
    //s3   s4         ,       ,              。         
    alert(s3 === s4);   //false
    
  • s.locale Compare(other):
  • 文字列が文字列パラメータの前に並べば負の値を返します.
  • 文字列が文字列パラメータに等しい場合、0を返します.
  • 文字列がアルファベット内に文字列パラメータの後に並ぶべきなら、正の値を返します.
  • var s = "b";
    var compare = s.localeCompare("aaa"); //         1
    alert(compare);
    
    alert(s.localeCompare("c"));   //           -1
    
    1.3.8文字列カット方法
    s.split(separator、howmany)メソッドは、文字列を文字列配列に分割するために使用されます.
    パラメータ
    説明
    separator
    必要です.文字列または正規表現は、このパラメータで指定された場所からsを分割します.
    howmany
    オプション.このパラメータは、返した配列の最大長さを指定します.このパラメータが設定されている場合、返したサブストリングはこのパラメータで指定された配列より多くないです.このパラメータが設定されていない場合は、文字列全体が分割され、その長さは考慮されません.(一般的にはこのパラメータは設定されていません)
    var s = "How do you do";
    var arr = s.split(" "); //    " "         
    alert(arr.length);  // 4
    alert(arr); // How,do,you,do