🐈
文字列操作チートシート
自分用チートシートです。
文字列の作成
方法 | 説明 | 例 |
---|---|---|
文字列リテラル | 最も一般的で推奨される方法。シングル/ダブルクォート。 | let str = 'Hello'; let str2 = "World"; |
テンプレートリテラル | バッククォート (`) を使用。改行や変数埋め込みが可能。 | let name = "Alice";let msg = \Hello, ${name}!;
|
文字列の長さとアクセス
プロパティ/メソッド | 説明 | 例 | 結果 |
---|---|---|---|
length | 文字列の長さを返す。 | hello'.length | 5 |
[index] | 特定のインデックスの文字にアクセス。 | hello'[0] | h' |
charAt(index) | 特定のインデックスの文字を返す(古い方法)。 | hello'.charAt(0) | h' |
文字列の結合
方法 | 説明 | 例 | 結果 |
---|---|---|---|
`=+ 演算子 | 最もシンプル。 | Hello' + ' ' + 'World' | Hello World' |
concat() | 複数の文字列を結合して新しい文字列を返す。 | Hello'.concat(' ', 'World') | Hello World' |
テンプレートリテラル | 変数や式を埋め込みながら結合。 | let name = 'Bob'; \Hello, ${name}!`` |
Hello, Bob!'| |
部分文字列の抽出
メソッド | 説明 | 例 | 結果 |
---|---|---|---|
slice(start, end) | startからend-1までを抽出。負のインデックスも可。 | abcdef'.slice(1, 4) 'abcdef'.slice(-3) | bcd''def' |
substring(start, end) | startからend-1までを抽出。負のインデックスは0として扱われる。 | abcdef'.substring(1, 4) 'abcdef'.substring(4, 1) | bcd''bcd' (自動で順番入れ替え) |
substr(start, length) | startからlength分を抽出(非推奨)。 | abcdef'.substr(1, 3) | bcd' |
文字列の検索とチェック
メソッド | 説明 | 例 | 結果 |
---|---|---|---|
indexOf(searchString, fromIndex) | 最初に現れるインデックス。見つからない場合は -1。 | hello world'.indexOf('world') | 6 |
lastIndexOf(searchString, fromIndex) | 最後に現れるインデックス。 | hello world world'.lastIndexOf('world') | 12 |
includes(searchString, position) | 特定の部分文字列を含むか。 | hello'.includes('lo') | TRUE |
startsWith(searchString, position) | 特定の部分文字列で始まるか。 | hello'.startsWith('he') | TRUE |
endsWith(searchString, length) | 特定の部分文字列で終わるか。 | hello'.endsWith('lo') | TRUE |
search(regexp) | 正規表現に一致する最初のインデックス。 | hello world'.search(/world/) | 6 |
文字列の置換
メソッド | 説明 | 例 | 結果 |
---|---|---|---|
replace(searchValue, replaceValue) | 最初に見つかった部分文字列/正規表現を置換。 | hello world'.replace('world', 'JS') | hello JS' |
replaceAll(searchValue, replaceValue) | すべての部分文字列を置換(ES2021)。 | hi hi'.replaceAll('hi', 'bye') | bye bye' |
replace(/regexp/g, replaceValue) | 正規表現とグローバルフラグで全て置換(replaceAllがない場合)。 | hi hi'.replace(/hi/g, 'bye') | bye bye' |
大文字・小文字変換
メソッド | 説明 | 例 | 結果 |
---|---|---|---|
toUpperCase() | 全て大文字に変換。 | hello'.toUpperCase() | HELLO' |
toLowerCase() | 全て小文字に変換。 | HELLO'.toLowerCase() | hello' |
空白文字の除去
メソッド | 説明 | 例 | 結果 |
---|---|---|---|
trim() | 先頭と末尾の空白文字を除去。 | hello world '.trim() | hello world' |
trimStart() | 先頭の空白文字を除去(ES2019)。 | hello'.trimStart() | hello' |
trimEnd() | 末尾の空白文字を除去(ES2019)。 | hello '.trimEnd() | hello' |
文字列の繰り返し
メソッド | 説明 | 例 | 結果 |
---|---|---|---|
repeat(count) | 文字列を指定回数繰り返す(ES2015)。 | abc'.repeat(3) | abcabcabc' |
文字列と配列の変換
メソッド | 説明 | 例 | 結果 |
---|---|---|---|
split(separator, limit) | 指定した区切り文字で文字列を分割し、配列を返す。 | a,b,c'.split(',') 'hello'.split('') | ['a', 'b', 'c'] ['h', 'e', 'l', 'l', 'o'] |
Array.from() | 文字列を文字の配列に変換。 | Array.from('hello') | ['h', 'e', 'l', 'l', 'o'] |
[...str] | スプレッド構文で文字の配列に変換。 | [...'hello'] | ['h', 'e', 'l', 'l', 'o'] |
その他メソッド
メソッド | 説明 | 例 | 結果 |
---|---|---|---|
padStart(targetLength, padString) | 指定した長さになるまで先頭に文字を埋める。 | 5'.padStart(2, '0') | 05' |
padEnd(targetLength, padString) | 指定した長さになるまで末尾に文字を埋める。 | 5'.padEnd(3, 'X') | 5XX' |
charCodeAt(index) | 特定のインデックスの文字のUTF-16コード単位値を返す。 | A'.charCodeAt(0) | 65 |
codePointAt(index) | 特定のインデックスの文字のUnicodeコードポイント値を返す(絵文字など対応)。 | 😊'.codePointAt(0) | 128522 |
Discussion