1

値を取得する方法は角括弧内に当てはまります。角かっこから値を取得しても、オプションが true または false であることがわかりません。

たとえば、私はIDを持っています:

values = content.match(/[^[\]]+(?=])/g);
$(this).closest(".myclass").myFn({
           postMe: values[0],
                    });

value[0] は ID (#myID) から取得される最初の値ですが、実行されません。次のような角括弧を付けます。

<div id="myID">[true]</div>

しかし、私は次のように直接置きます:

values = content.match(/[^[\]]+(?=])/g);
$(this).closest(".myclass").myFn({
           postMe: true,
                    });

正常に動作します。この問題の解決策を教えてください。お手伝いありがとうございます。

4

2 に答える 2

1

ここtestの代わりに次のように使用できます。match

var result = content.test(/[^[\]]+(?=])/g);
$(this).closest(".myclass").myFn({
    postMe: result,
});

Astestは、正規表現と指定された文字列との一致を検索し、それに基づいてtrueまたはfalseを返します。

正規表現matchに対して文字列を照合する場合にのみ、一致を (配列の形式で) 取得します。

于 2013-11-05T11:57:06.603 に答える
1

正規表現は、ブール値ではなく文字列を返します。value[0]= 'true'、そうではありません。最初に文字列をブール値にキャストする必要があります(詳細については、この質問を参照してください)。
あなたのコードは次のようになります

values = content.match(/[^[\]]+(?=])/g);
$(this).closest(".myclass").myFn({
    Random : (values[0] === 'true'),
});
于 2013-11-05T12:02:38.557 に答える