javascriptにおける文字列の常用操作のまとめ

6789 ワード

転載元:
javascriptにおける文字列の常用操作のまとめ
文字列の操作はjsの中で非常に頻繁であり、また非常に重要である.これまで本を読んでからはよく覚えていますが、時間を置いて使わないと、ほぼ忘れてしまいます.記憶が悪いのは、ハードです.今日は文字列のいくつかの常用操作を整理して、印象を深めます.
Stringオブジェクトのプロパティ
(1)length属性
lengthは文字列でよく使われる属性の一つです.文字列の長さを取得する機能です.もちろん注意しなければならないのはjsの中の中国語の漢字は一つの文字だけです.ここは他の言語とはちょっと違っているかもしれません.
var str = 'abc';
console.log(str.length);

(2)prototype属性
prototypeはオブジェクト指向プログラミングにおいてよく用いられ、オブジェクトに属性または方法を追加し、追加された方法または属性はすべてのインスタンスで共有される.このため、js内蔵オブジェクトを拡張するためにもよく使われます.下のコードのように、文字列に両側のスペースを取り除く方法を追加しました.
String.prototype.trim = function(){
    return this.replace(/^\s*|\s*$/g, '');
}

Stringオブジェクト方法
1.クラスの取得方法
(1)charAt()
strigObject.chart(index)
charAt()メソッドは、指定された位置の文字列を取得するために使用することができ、indexは文字列索引値であり、0からstring.leng-1まで、この範囲でなければ空の文字列を返します.例えば:
var str = 'abcde';
console.log(str.charAt(2));        //  c
console.log(str.charAt(8));        //      

(2)charCodeAt()
strigObject.charCodeAt(index)
charCodeAt()メソッドは、指定された位置の文字のユニックコードを返すことができます.charCodeAt()方法はcharAt()方法と同様に、一つのインデックス値をパラメータとして入力する必要があり、前者が指定された位置に戻る文字の符号化とは違い、後者がワードサブストリングを返します.
var str = 'abcde';
console.log(str.charCodeAt(0));        //  97

(3)from CharCode()
String.from CharCode(numX,numX,…,numX)
from CharCode()は、一つ以上のUnicoode値を受け取り、文字列を返します.また、この方法はStringの静的方法であり、文字列の各文字は個別の数字Unicode符号化で指定されている.
String.fromCharCode(97, 98, 99, 100, 101)    //  abcde

2.検索クラスの方法
(1)indexOf()
strigObject.indexOf(search value、froomindex)
indexOf()は、指定された文字列値が文字列で最初に現れる位置を検索するために使用されます.二つのパラメータを受信できます.search valueは検索するサブ文字列を表します.froomindexは検索の開始位置を表します.省略すると開始位置から検索します.
var str = 'abcdeabcde';
console.log(str.indexOf('a'));    //   0
console.log(str.indexOf('a', 3));    //   5
console.log(str.indexOf('bc'));    //   1

(2)lastIndexOf()方法
strigObject.lastIndexOf(search value、froomindex)
lastIndexOf()文法はindexOf()と類似しています.指定されたサブ文字列値の最後に現れた位置を返します.検索順序は後から前に進みます.
var str = 'abcdeabcde';
console.log(str.lastIndexOf('a'));    //   5
console.log(str.lastIndexOf('a', 3));    //   0     3       
console.log(str.lastIndexOf('bc'));    //   6

(3)search()方法
strigObject.search(substr)strigObject.search(regexp)
search()メソッドは、文字列で指定されたサブ文字列を検索したり、正規表現と一致するサブ文字列を検索します.最初のマッチするサブ文字列の開始位置を返します.マッチしていない場合は-1を返します.
var str = 'abcDEF';
console.log(str.search('c'));    //  2
console.log(str.search('d'));    //  -1
console.log(str.search(/d/i));    //  3

(4)match()方法
strigObject.match(substr)strigObject.match(regexp)
match()メソッドは、指定された値を文字列内で検索したり、1つ以上の正規表現のマッチングを見つけることができます.
パラメータにサブ文字列が入ってきた場合、またはグローバルマッチングが行われていない正規表現の場合、match()法は開始位置からマッチを行い、結果にマッチしていない場合はnullを返します.そうでなければ、1つの配列に戻ります.この配列の0番目の要素はマッチテキストであり、この他に、返した配列は2つのオブジェクト属性indexとinputを含みます.それぞれはテキストにマッチする開始文字索引とstring Objectの参照を表します.
var str = '1a2b3c4d5e';
console.log(str.match('h'));    //  null
console.log(str.match('b'));    //  ["b", index: 3, input: "1a2b3c4d5e"]
console.log(str.match(/b/));    //  ["b", index: 3, input: "1a2b3c4d5e"]

パラメータが大域的に整合した正規表現である場合、最後までは開始位置から何度もマッチします.結果にマッチしていない場合は、nullを返します.そうでないと、行列が返されます.配列には、必要に応じたすべてのサブ文字列が格納され、indexとinput属性がありません.
var str = '1a2b3c4d5e';
console.log(str.match(/h/g));    //  null
console.log(str.match(/\d/g));    //  ["1", "2", "3", "4", "5"]

3.切り取り方法
(1)substring()
stingObject.substring(start,end)
substring()は最もよく使われる文字列の切り取り方法で、2つのパラメータ(パラメータは負の値ではいけません)を受信できます.それぞれ切り取りの開始位置と終了位置です.これは新しい文字列を返します.その内容はstartからend-1までのすべての文字です.パラメータ(end)を省略すると、start位置から最後まで切り取ることを表します.
var str = 'abcdefg';
console.log(str.substring(1, 4));    //  bcd
console.log(str.substring(1));    //  bcdefg
console.log(str.substring(-1));    //  abcdefg,        0

(2)slice()
stingObject.slice(start,end)
slice()方法はsubstring()法と非常に類似しており、導入された二つのパラメータもそれぞれ開始位置と終了位置に対応している.違いは、slice()のパラメータは負の値であってもよく、パラメータが負の値であれば、このパラメータは文字列の末尾から計算される位置を規定している.つまり-1は文字列の最後の文字です.
var str = 'abcdefg';
console.log(str.slice(1, 4));    //  bcd
console.log(str.slice(-3, -1));    //  ef
console.log(str.slice(1, -1));    //  bcdef
console.log(str.slice(-1, -3));    //      ,         ,    

(3)substr()
stingObject.substr(start,length)
substr()メソッドは、startの下付きから指定された数の文字を文字列から抽出することができます.その戻り値は、stingObjectのstart(startという文字を含む)から始まるレングス文字列である.lengthが指定されていない場合、返された文字列は、startからストリングObjectまでの末尾の文字を含む.また、startが負の場合は、文字列の末尾から計算することを表します.
var str = 'abcdefg';
console.log(str.substr(1, 3))    //  bcd
console.log(str.substr(2))    //  cdefg
console.log(str.substr(-2, 4))    //  fg,        ,          

4.その他の方法
(1)replace()方法
strigObject.replace(regexp/substr,replace)
replace()メソッドは文字列置換動作を行うために用いられ、前者は置換されたサブ文字列(正則であってもよい)であり、後者は置換テキストである.
最初のパラメータがサブ文字列であるか、グローバルマッチングが行われていない正規表現が入ってきた場合、replace()方法は一度だけ置き換えられます.すなわち、一番前の文字列を置換して、置換後の結果文字列を返します.
var str = 'abcdeabcde';
console.log(str.replace('a', 'A'));
console.log(str.replace(/a/, 'A'));

最初のパラメータが入ってきた大域一致の正規表現がある場合、replace()は条件に合ったサブ文字列を何度も置換し、最後に何度も置換された結果文字列を返します.
var str = 'abcdeabcdeABCDE';
console.log(str.replace(/a/g, 'A'));    //  AbcdeAbcdeABCDE
console.log(str.replace(/a/gi, '$'));    //  $bcde$bcde$BCDE

(2)スプリット()方法
stingObject.split(separator、howmany)
split()メソッドは、文字列を文字列配列に分割するために使用されます.最初のパラメータseparatorは分割位置(参照符)を表し、2番目のパラメータhowmanyは戻り行列の許容最大長さを表します.
var str = 'a|b|c|d|e';
console.log(str.split('|'));    //  ["a", "b", "c", "d", "e"]
console.log(str.split('|', 3));    //  ["a", "b", "c"]
console.log(str.split(''));    //  ["a", "|", "b", "|", "c", "|", "d", "|", "e"]

正則で分割することもできます.
var str = 'a1b2c3d4e';
console.log(str.split(/\d/)); //  ["a", "b", "c", "d", "e"]

(3)LowerCase()とtoUpperCase()
strigObject.torowerCase()strigObject.toUpperCase()
LowerCase()メソッドは文字列の中の大文字を小文字に変換でき、toUpperCase()方法は文字列の小文字を大文字に変換することができます.
var str = 'JavaScript';
console.log(str.toLowerCase());    //  javascript
console.log(str.toUpperCase());    //  JAVASCRIPT