この記事では、私が個人的によく使うと思っている文字列のメソッドを、独断と偏見でピックアップして紹介します。
一部を使う系
includes
indexOf
includes
文字列の中に特定の文字列が含まれるかどうかを調べます。
- 引数: 含まれるか調べたい文字列
- 戻り値: 含まれるかどうかを示す
boolean
値
含まれるというのは、例えばHello World!
にHello
とWorld!
は含まれますが、Hi!
は含まれません。
const text = 'Hello World!'
text.includes('Hello') // true
text.includes('World!') // true
text.includes('Hi!') // false
詳細はMDNをご覧ください。
indexOf
指定された文字列がある位置を返します。
- 引数: 調べたい文字列
- 戻り値: どの位置かを示す数値
- 見つからなかったら
-1
- 見つからなかったら
例えばHello World!
の中のllo
は2
、World
は6
になります。
また、Hi!
は存在しないので-1
が返ってきます。
const text = 'Hello World!'
text.indexOf('llo') // 2
text.indexOf('World') // 6
text.indexOf('Hi!') // -1
詳細はMDNをご覧ください。
置き換え
replace
replaceAll
replace
指定された文字列または正規表現に一致する部分を探し、その部分を指定された文字列に置き換えます。
- 引数:
-
pattern
: 置き換えたい場所を示す正規表現 or 文字列 -
replacement
:pattern
の位置を置き換えたい文字列
-
- 戻り値: 置き換えた後の文字列
const str = 'Hello World!'
str.replace('World', 'JavaScript') // Hello JavaScript!
第一引数pattern
に入れられるのは、正確にはSymbol.replace
メソッドを持つものです。
これは例えば正規表現(RegExp
)があります。
また、Symbol.replace
を持たないものは文字列に変換されます。
なお、replace
は最初にpattern
が出てきた場所しか置き換えません。
文字列内の全てを置き換えたい場合は、次のreplaceAll
が使えます。
詳細はMDNをご覧ください。
replaceAll
replace
に似ていますが、これは文字列内に出てくる全てのpattern
を置き換えます。
引数と戻り値はreplace
と同じです。
replaceAll
は例えばHTMLタグの簡単なエスケープに使えます。
const html = '<p>Hello World!</p>'
html
.replaceAll('<', '<') // < を < に置き換える
.replaceAll('>', '>') // > を > に置き換える
// '<p>Hello World!</p>'
詳細はMDNをご覧ください。
文字列を切り出す
slice
substring
slice
切り出しを開始 / 終了する位置のインデックスを受け取り、その位置で切り出した文字列を返します。
- 引数:
-
indexStart
: 切り出しを開始する位置 -
indexEnd
: 切り出しを終了する位置(省略可能)- 省略した場合、
indexStart
から最後までが切り出される
- 省略した場合、
-
- 戻り値: 切り出された文字列
こちらはHello World
という文字列から、特定の位置の文字列を切り出す例です。
const text = 'Hello World!'
text.slice(2, 5) // 'llo'
text.slice(7) // 'World!'
詳細はMDNをご覧ください。
substring
slice
と基本的には同じですが、いくつか違いがあります。
項目 | slice |
substring |
---|---|---|
負の数 | 最後から数える |
0 として扱う |
indexEnd > indexStart のとき |
空文字列を返す | 逆転して扱う |
個人的にはslice
があるので、こちらはあまり使わないと思っています。
詳細はMDNをご覧ください。
似たような役割のメソッドとしてsubstr
が挙げられますが、こちらは非推奨となっています。
substr
の使用は避け、代わりにslice
やsubstring
を使うようにしましょう。
その他
split
trim
split
文字列を特定の文字列で分割した配列を返します。
- 引数: 分割に使う文字列
- 戻り値: 分割した配列
例えば |
でそれぞれの文字列が区切られたものを、split
で配列に変換できます。
const text = `ABC | Hello | test-test`
// |前後の半角スペースを忘れずに
text.split(' | ') // ['ABC', 'Hello', 'test-test']
これ以外にも、改行文字\n
で区切られた文章を分割する(str.split('\n')
)などの用途があります。
詳細はMDNをご覧ください。
trim
前後にある余分な空白を削除します。
- 引数: なし
- 戻り値: 最初と最後の空白を削除した文字列
const str = ' hello world ';
str.trim() // 'hello world'
なお、ここで空白に分類されるのは以下があります。
詳細はMDNをご覧ください。
また、最初や最後の空白のみを削除するメソッドもあります。