2

見つけたJQueryzenコーディングプラグインを自分の用途に適合させようとしています。私が抱えている問題の1つは、コード内のバグです。

a[href="google.com"]

に拡大します

 <a href="google.com" class="com"</a>

コードで使用されている正規表現は次のとおりです。

/(\.[\w-]+)/gi

その前に偶数の角かっこがあるかどうかを確認するために、先読みで変更しました。

/(\.[\w-]+)(?=([^\]]*\][^\]]*\])*[^\]]*$)/gi

私は正規表現テスターを使用しましたが、動作しているようですが、javascriptを使用する.match()と、上記の文字列内の一致として「.com」が返されます。

以下の応答は問題のバグを解決しましたが、新しいバグを作成しました。今:

a.class[href="google.com"]

に解決されていません

http://jsfiddle.net/sA9sQ/

編集: 私はそれが私が行く必要がある場所に私を連れて行ったので、私は以下の答えを受け入れました。最終的な正規表現は/(\.[\w-]+)(?=([^\]]*\][^\]]*\])*[^\]]*\.[\w-]+)/gi

4

1 に答える 1

1

次のように、先読みを正規表現の前に移動してみてください。

/(?=([^\]]*\][^\]]*\])*[^\]]*$)(\.[\w-]+)/gi
于 2013-01-04T17:17:51.587 に答える