JavaScriptで特定文字以降を削除 (substring,indexOf)

1 min read読了の目安(約1400字

特定文字以降を削除

const person = "山田太郎(20才)"

例: "山田太郎(20才)"という文字列から年齢を排除して、名前だけを取り出したい時。

"(" 以降の文字列を排除すればよくね?

ってことでそれを可能にするのが以下のコード↓

const person = "山田太郎(20才)"
person.substring(0, person.indexOf("("))
// 山田太郎

substringindexOfというメソッドを使用して可能にしています。

substring

基本的な使い方
substring(開始[, 終了])

substringは開始位置から終了位置までの間を取得するメソッド。

const person = "山田太郎(20才)"
person.substring(0.2)
// 山田

上記のコードでは文字列の0番目から2番目までを取得しています。

使う時に注意して欲しいのが、開始位置の文字列は含まれるが終了位置の文字列は含まれないということ。

ちなみに終了位置は省略可能です。その場合、開始位置以降の文字列を取得します。

substringメソッドもっと詳しくしりたい方はこちら

indexOf

  • 指定された値が最初に現れたインデックスを返します。
"太"のインデックスを返す
const person = "山田太郎(20才)"
person.indexOf("太")
// 2

みたいな感じです。

indexOfメソッドもっと詳しくしりたい方はこちら

以降を削除

上記で説明したsubstringindexOfというメソッドを使用して
特定文字以降を削除を可能にしています。
改めて解説すると

const person = "山田太郎(20才)"
person.substring(0, person.indexOf("("))
// 山田太郎

substringでpersonの0番目からperson.indexOf("(")番目までを取得しているということです。
もっと言えば、person.indexOf("(")=5 になるので
実質こんな感じになります。

const person = "山田太郎(20才)"
person.substring(0, 5)
// 山田太郎

まとめ

javascript 以降削除

で検索した時にヒットしたやり方ですが、
あまり詳しい解説がなく、なんとなく使っていたので
ちゃんと調べて記事にしてみました。笑