は、(a.)
一致する式のグループ式部分を取得する方法は?
は(これは今、削除された記事の再投稿です、私はこのケースでは、value
にマッチしたexpression
の一部を取得できるようにしたいと思い、var value = "axx"
一致させるために、VAR expression = /(a.)|(b.)|(c.)/;
を考えます私が得ようとしているのは正規表現の部分であり、一致する文字列の部分ではありません)。
は、(a.)
一致する式のグループ式部分を取得する方法は?
は(これは今、削除された記事の再投稿です、私はこのケースでは、value
にマッチしたexpression
の一部を取得できるようにしたいと思い、var value = "axx"
一致させるために、VAR expression = /(a.)|(b.)|(c.)/;
を考えます私が得ようとしているのは正規表現の部分であり、一致する文字列の部分ではありません)。
function getFirstMatchedGroupIndex(regex, test_str) {
var result = test_str.match(regex);
if (result) {
return result.splice(1).findIndex(x => x);
}
}
var reg = /(a.)|(b.)|(c.)/;
getFirstMatchedGroupIndex(reg, "axx"); // 0
getFirstMatchedGroupIndex(reg, "bxx"); // 1
getFirstMatchedGroupIndex(reg, "cxx"); // 2
getFirstMatchedGroupIndex(reg, "xxx"); // undefined
この関数は、事実を利用すること一致次のエントリを含む配列を返しmatch
ストリング方式の場合:
申し訳ありませんが、そのコードはどこで実行していますか?あなたが 'x => x'で何を意味するのかわからない、おい、それはjavascriptでもある –
はい、それはJavaScriptです、私は新しいES6の矢印関数を使用しています、問題の断片はもっとexplicityを書くことができましたfindIndex(function(item) { 返却物 });古いブラウザを使用している場合や下位互換性が必要な場合は、このコードを使用してください。 –
ああ、これはちょうどそのパラメータを返す関数を持つために奇妙に見えるかもしれません。アイデンティティ関数と呼ばれています。 findIndexは、指定された関数(ここではID)に渡されたときに真理値を返す最初の項目のインデックスを返します。 –
なぜ、3つの異なる表現にマッチさせようとしないのですか? –
何もする必要はありません。どのキャプチャグループが満たされているかを確認するだけです。 –
@AdrienBrunelatもっと長い式を使用したいので、できるだけ多くのループを避けたいです。 –