1. ホーム
  2. javascript

[解決済み] JavaScript - 文字列正規表現による後方参照

2022-12-26 23:41:53

質問

JavaScriptでは、このように後方参照を行うことができます。

var str = "123 $test 123";
str = str.replace(/(\$)([a-z]+)/gi, "$2");

これは、(非常に愚かなことですが) "$test" を "test" に置き換えるものです。しかし、結果として得られる $2 の文字列を関数に渡して、別の値を返したいとします。これをやってみましたが、文字列 "test" を得る代わりに "$2" を得ることができます。これを達成する方法はありますか?

// Instead of getting "$2" passed into somefunc, I want "test"
// (i.e. the result of the regex)
str = str.replace(/(\$)([a-z]+)/gi, somefunc("$2"));

どのように解決するのですか?

このように

str.replace(regex, function(match, $1, $2, offset, original) { return someFunc($2); })