2つ目のアンダースコア(アンダーバー)までの文字列を取得する!Javascript初心者の勉強

2つ目のアンダースコア(アンダーバー)までの文字列を取得する方法を調べました。

やりたいこと

以下のような文字列があるとする。

"Test1_Test2_test3_test4"

この文字列から2つ目のアンダースコアまでの部分をJavascriptで取り出したい。
以下の部分がぬき出せればいい。

"Test1_Test2"

2つ目のアンダースコア(アンダーバー)までの文字列を取得する方法

それでは2つ目のアンダースコアまでの値をJavascriptを使って取得したいと思います。
match()メソッドを使用し正規表現を使って抜き出しています。

let value = "Test1_Test2_test3_test4";
let getval = value.match(/^[^_]*_[^_]*/); //配列として代入される
console.log(getval[0]); // Test1_Test2

以上で取得できました。

正規表現については以下を参考にしていただければと思います。

せっかくなので2つめのアンダースコアも含む場合のサンプルコードも残します。

let value = "Test1_Test2_test3_test4";
let getval = value.match(/^[^_]*_[^_]*_/);//配列として代入される
console.log(getval[0]); // Test1_Test2_

ちなみに「^[^_]*」で1つのアンダースコアを現しているので数を増やせば2つめ「^[^_]*_[^_]*」3つめ「^[^_]*_[^_]*_[^_]*」のアンダースコアの数を調整することも可能です。

ついでに3つめのアンダースコアまで取得するサンプルコード。

let value = "Test1_Test2_test3_test4";
let getval = value.match(/^[^_]*_[^_]*_[^_]*/);//配列として代入される
console.log(getval[0]); // Test1_Test2_test3

おわり

少しアンダースコアが怖くなくなりました。
調べていたら正規表現を確認するのに便利なサイトを見つけたのでリンクを残します。

参考

正規表現確認便利サイト:https://regex101.com/
参考元サイト:REGEXP to grab all text before second underscore, including second underscore

Javascript

Posted by Nakamoto