質問: location.pathname; // pathには/hoge/abc123_def567が取れる想定です ``` その中で後ろのabc123_def567の _ 前の値(abc123)を取得し変数に格納したいです。 どのようにすれば少ないコードでabc123の部分を取得できるでしょうか。 お力添えよろしくお願いします
回答: 正規表現とmatchですね。 urlに出得る文字が分からないのでなるべく汎用的に書くと次のようになります。 urlの詳細が限定されればより簡単にかけます。 ``` const s = path.match(/\/([^/_]+)_[^/_]+$/)[1]; ``` 詳しくは「javascript 正規表現」とかでググってください。↑の正規表現の意味くらいが分かるようになれば色々と便利だと思います。 追記 試してみても↑で普通に動くのですが...pathの中身がちゃんと取れてるか出力して確認してみてくださいとしか... それはそれとしてその条件ならパターンは `/^\/hoge\/(abc\d+)_/`とかで良さそうですね。 もっと言えばabcが一箇所にしかないことが保証されるならグループも使わずに`match(/abc\d+/)[0]`でもいいですね。