情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

ECMAScript 6の新機能(4)文字列関連関数

2016/05/27

ECMAScript 6で新しい文字列関連関数が幾つか追加されました。

コードポイント

String.codePointAt

これは文字列中の文字のコードポイントを返す関数です。

第1引数にインデックスを指定します。

ただし、インデックスがサロゲートペアの前半を示している場合にはサロゲートコードポイントが返り、後半を示している場合には後半のみのコードポイントが返ります。

また、インデックスが文字列のインデックスの範囲外である場合にはundefinedが返ります。

C:\work\node>node
> 'x\uD83D\uDE80y'.codePointAt(0)
120
> 'x\uD83D\uDE80y'.codePointAt(1)
128640
> 'x\uD83D\uDE80y'.codePointAt(2)
56960
> 'x\uD83D\uDE80y'.codePointAt(3)
121
> 'x\uD83D\uDE80y'.codePointAt(4)
undefined

String.fromCodePoint

これは0個以上のコードポイントを文字列に変換する関数です。

第1引数以降にコードポイントを指定します。

ただし、サロゲートコードポイントはそのまま指定することもできますし、前半と後半を2つのコードポイントに分けて指定することもできます。

> String.fromCodePoint(0x61)
'a'
> String.fromCodePoint(0x61, 0x62)
'ab'
> String.fromCodePoint(0x2F804)
'�'
> String.fromCodePoint(0xD834, 0xDF06)
'�'

String.normalize

これはユニコード正規化した文字列を返す関数です。

第1引数に正規化形式を指定します。

> '\u1E9B\u0323'.normalize('NFC')
'ẛ̣'
> '\u1E9B\u0323'.normalize('NFD')
'ẛ̣'
> '\u1E9B\u0323'.normalize('NFKC')
'ṩ'
> '\u1E9B\u0323'.normalize('NFKD')
'ṩ'

包含

String.startsWith

これは文字列が別の文字列から始まるかをチェックする関数です。

第1引数に別の文字列を指定します。

第2引数に文字列のチェックを開始するインデックスを指定します。この引数は指定しなくても構いません。

> 'testamant'.startsWith('test')
true
> 'testamant'.startsWith('mant')
false
> 'testamant'.startsWith('test', 5)
false
> 'testamant'.startsWith('mant', 5)
true

String.endsWith

これは文字列が別の文字列で終わるかをチェックする関数です。

第1引数に別の文字列を指定します。

第2引数に文字列のチェックを開始するインデックスを指定します。この引数は指定しなくても構いません。

> 'testamant'.endsWith('test')
false
> 'testamant'.endsWith('mant')
true
> 'testamant'.endsWith('test', 4)
true
> 'testamant'.endsWith('mant', 4)
false

String.includes

これは文字列に別の文字列が含まれているかをチェックする関数です。

第1引数に別の文字列を指定します。

第2引数に文字列のチェックを開始するインデックスを指定します。この引数は指定しなくても構いません。

> 'testamant'.includes('a')
true
> 'testamant'.includes('1')
false
> 'testamant'.includes('a', 7)
false

反復

String.repeat

これは文字列を繰り返した文字列を返す関数です。

第1引数に繰り返し回数を指定します。

> 'foo'.repeat(10)
'foofoofoofoofoofoofoofoofoofoo'

正規表現

ECMAScript 6で新しい正規表現関連関数が幾つか追加されました。

  • String.match
  • String.replace
  • String.search
  • String.split

これらに関しては正規表現に関する記事で取り上げる予定です。

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-ecmascript 2015, ecmascript 6, Javascript