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
これらに関しては正規表現に関する記事で取り上げる予定です。
