→
その文字列を、指定した区切り文字列で分割したものを配列として返します。
String | String。 |
---|---|
separator | 省略可。分割を行うところにある文字列です。文字列または正規表現を指定することができます。
separator が複数の文字を含んだ文字列である場合、分割にはその文字列の並び全体が見つかることが必要です。 separator が省略されたり str の中に現れなかったりした場合は、返却される配列には文字列全体から成る要素が1つだけ含まれます。 separator が文字列の先頭または末尾、またはその両方に現れた場合、配列の先頭、末尾、または先頭と末尾の両方が、それぞれ空文字列になります。 separator が空文字列("")の場合、str は個々の UTF-16 「文字」の配列になります。 警告: 空文字列("")を区切り文字列として使用すると、文字列がユーザーが知覚可能な文字(書記素クラスター)に分割されるわけではなく、Unicode 文字(コード ポイント)、ただし UTF-16 コード単位です。これはサロゲート ペアを破壊します。StackOverflow の“How do you get a string to a character array in JavaScript?”を参照してください。 |
limit | 省略可省略可。非負の整数で、分割する数を制限します。
指定された場合、文字列は separator が現れるたびに分割されますが、limit の数の項目が配列に配置されると停止します。残りのテキストは配列に入りません。
|
文字列の Array。指定された文字列で separator が現れるたびに分割されたものです。
separator は見つかると文字列から削除され、部分文字列が配列に入って返されます。
separator が、キャプチャする括弧を含む正規表現だった場合、separator が一致するごとに、キャプチャーする括弧の結果が(未定義の結果であった場合を含め)出力配列に追加されます。
separator が配列であった場合、その配列が String に変換された上で区切り文字列として使用されます。
文字列が空の場合、split() は空の配列ではなく、1つの空文字列を含む配列を返します。文字列と区切り文字列が共に空文字列の場合、空の配列が返ります:
const myString=''; D=myString.split(); //=[""]
以下の例は、指定された区切りを使って、文字列を文字列の配列に分割する関数を定義します。文字列を分割した後、その関数は元の文字列(分割する前)、使用した区切り、配列中の要素の数、そして、個々の配列要素を示すメッセージを表示します:
Str='Oh brave new world that has such people in it.'; D=Str.split(" "); //=["Oh", "brave", "new", "world", "that", "has", "such", "people", "in", "it."] Str='Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'; D=Str.split(","); //=["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
以下の例では、split() は、0 回以上の空白とそれに続くセミコロン、それにさらに続く 0 回以上の空白を探し、それらが見つかったとき、文字列から空白を削除します。nameList は、split() の結果として返された配列です:
const names = 'Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand '; const re = /\s*(?:;|$)\s*/; D=names.split(re); //=["Harry Trump", "Fred Barney", "Helen Rigby", "Bill Abel", "Chris Hand", ""]
以下の例では、split() は 文字列中の 0 回以上の空白を探し、見つかった最初の 3 つの分割結果を返します:
const myString = 'Hello World. How are you doing?'; D=myString.split(' ', 3); //=["Hello", "World.", "How"]
separator がキャプチャーの括弧「()」 を含む正規表現である場合、一致した結果が配列に含まれます:
const myString='Hello 1 word. Sentence number 2.'; D=myString.split(/(\d)/); //=["Hello ", "1", " word. Sentence number ", "2", "."]
メモ: 正規表現の \d は文字クラスで、0から9の数字に一致します。
この手法は文字列を正しく反転できるとは限りません。
const str='asdfghjkl'; D=str.split('').reverse().join(''); //="lkjhgfdsa"
reverse() で、split()で得られた配列要素を逆順にする。
join() で、配列をつなげる。
Unicode 対応の分割を使用している場合でも、文字列に書記素クラスターが含まれていると機能しません(代わりに などを使ってください)。
const str = 'résumé'; const strReverse = str.split(/(?:)/u).reverse().join(''); //="́emuśer"
=== 演算子を使用すると、元の文字列が回文であるかどうかが判定できます。