1

スクリプト内の「これ」を置き換えたいと思います。

$(this).find('option').each(function() {

    $(this).hide();
})

外側の this のみ、または関数ブロック内にない「this」のみを置き換える可能性はありますか? アイデアがうまくいかない...

.replace(/([^{])\bthis\b([^}])/gm, $1replacement$2)

補遺: 最初のコードは、javascript ではなく、文字列として処理されます! 外側の「this」のみを置き換える正規表現を探しています。

4

6 に答える 6

0

その場合、これはオブジェクトです。交換できる文字列ではありません。別の値を割り当てることもできますが、そのような置換は機能しません。

于 2013-09-02T09:07:28.957 に答える
0

「外側」のテキストと「内側」のテキストを区別する方法は、内側の場合、次の中括弧は中括弧であり、ブロックを閉じます。

したがって、否定的な先読みを使用しthisてブロック内を除外します。

str = str.replace(/\bthis\b(?![^{]*\})/gs, replacement);

また、一致は単にターゲット テキスト「this」であるため、置換用語の簡略化にも注意してください。

この正規表現の動作のライブ デモをご覧ください。

于 2013-09-04T03:55:26.130 に答える
0

callを試すことができます。この関数により、thisオブジェクトを置き換えることができます:

$(this).find('option').each(function() {
    // here this === replacement
    $(this).hide();
}.call(replacement))
于 2013-09-02T09:17:57.077 に答える