1. ホーム
  2. javascript

[解決済み] 指定した文字の最初のインスタンスでのみ文字列を分割する

2022-03-14 16:23:43

質問

私のコードでは、文字列を _ で、配列の2番目の項目を取得します。

var element = $(this).attr('class');
var field = element.split('_')[1];

テイクス good_luck を提供し、私に luck . 素晴らしい作品です。

しかし、今、私は以下のようなクラスを持っています。 good_luck_buddy . javascriptで2番目の _ を与え luck_buddy ?

私はこれを見つけた var field = element.split(new char [] {'_'}, 2); をc#のstackoverflowの回答で見たのですが、うまくいきません。jsFiddleで試したのですが...。

解決方法は?

使用方法 括弧の捕捉 :

"good_luck_buddy".split(/_(.+)/)[1]
"luck_buddy"

これらは次のように定義されています。

もし separator が捕捉括弧を含んでいる場合、マッチした結果は が配列で返されます。

ということで、この場合は _.+ (で始まる部分文字列を分割する。 _ ) と同時に は、結果にセパレータの一部が含まれるようにします (例. すべて _ ).

この例では、セパレータ(マッチング _(.+) ) は _luck_buddy で、キャプチャされたグループ(セパレータ内)は lucky_buddy . キャプチャーの括弧がない場合は luck_buddy (マッチング .+ のように、結果の配列に含まれなかったでしょう。 split というように、セパレータは結果に含まれない。