// HTML 文字列または ID 文字列をチェックする簡単な方法
// (どちらも最適化します)
quickExpr = /^(?:[^<]*(< ;[wW] >)[^>]*$|#([w-] )$)/
jquery のコメントによると、HTML 文字列と ID セレクターに一致します
この正規表現を最初に見たとき、0 個以上の < 以外の文字列と一致させるにはどうすればよいでしょうか? これは < と一致しますか?そして、HTML タグは < に直接一致するべきではないでしょうか?
First (?:pattern) はパターンに一致しますが、一致結果は得られません。これは、これは不一致であり、後で使用するために保存されないことを意味します。そして、括弧内にないすべてのものと一致します。
以下は説明するための例です
var QuickExpr = /^(?:[^<]*(<[wW] >)[^>]*$|#([w-] )$)/; sss="jytjt< dd1>1>fefef"
match=quickExpr.exec(sss);
alert(match);
結果は jytjt です。 1>fefef =,1>
exec が配列を返し、2 番目の文字列は?であることがわかります。 :
以外の文字を照合します。 jquery で結果を取得する方法も match[1] です。そのため、jquery のセレクターに余分な html タグを入力した場合でも、正しい html タグを除外できます。ここでも同時に? : # も除外されるため、# 番号のない ID 名のみの ID が取得されます。
つまり、この jquery 正規表現の意味は、HTML タグまたは ID セレクターをフィルターすることです。