1

[[ ... ]] を myFunction('...') に変更する JS 置換関数を取得しようとしています。

"player.email = '[[UserID]]@email.com';"

なる:

"player.email = '" + myGetterFunction('userid') + "@email.com';"

[[ ]] は myFunction('') になり、[[]] 内の値は小文字になります


仮定:

  • 文字列全体が二重引用符で囲まれます
  • 単一引用符とエスケープされた引用符のみが内部に含まれます
  • 値 "UserID" は常に変化し、[[ と ]] のペアを除いて、スペースやその他の非 alpaNumeric 文字を含めることができます。

このためのほとんど一般的なセットアップの方向性を教えてくれる人はいますか? 私を悩ませているのは、クレイジーな分割を行わずに [[]] の内容を小文字にすることです。トークンを置き換えるためのいくつかの Ninja Regex が既に存在すると考えています (これまでに見たサンプルは、トークンごとに特定の値に置き換えられています。トークンとラッパーを変換したいだけです。

4

1 に答える 1

0

置換関数を使用して、キャプチャされたグループを処理できます。

str.replace(/\[\[(.*?)\]\]/g, function(text) {
    return myGetterFunction(text.toLowerCase());
});

/\[\[(.*?)\]\]/g複雑に見えるかもしれませんが、実際にはエスケープされた角括弧の集まりです。(.*?)非貪欲なキャプチャ グループです。

于 2013-01-02T19:36:12.527 に答える