0

私はあるページから JS を読んでいましたが、これが私が見つけたものです (ソースは Google Chrome 開発ツールによって難読化解除されています):

var db = function(a) {
    return a.replace(/[^\w\s\.\|`]/g, 
    function(b) {
        return "\\" + b
    })
};

最初のコンマ演算子オペランド (1 つ) にトリックはありa.replace()ますか?

私の見解では、このa.replace(/[^\w\s\.\|``]/g,部分は完全に冗長であり、削除できます。

私は何かを逃しましたか?

4

3 に答える 3

9

これはコンマ演算子ではなく、呼び出しの単純な引数リスト.replaceです- 括弧に注意してください。

難読化解除ツールは、次のようにインデントする必要があります。

return a.replace(/[^\w\s\.\|`]/g, function(b) {
    return "\\" + b;
});

ところで、その関数は単純な string に置き換えることができます"\\$&"

于 2013-01-28T20:56:03.533 に答える
3

コンマ演算子はありません。

置換のドキュメントを参照してください

newstring = str.replace(regexp, function);

フォーマットが悪いと読みにくくなります。

于 2013-01-28T20:56:19.907 に答える
3

基本的にやってる

a.replace(/([^\w\s\.\|`])/g, "\\$1");
于 2013-01-28T20:57:47.430 に答える