デフォルトでは、.
ワイルドカード演算子は改行文字 ( , )と一致しません。他の言語では、何にでも一致させるためのモード (単一行モードと呼ばれることもあります) があります。Javascriptには、何らかの理由でそれがありません。同等の use が必要な場合、つまり、任意の文字が空白であるか、空白ではないことを意味します。\n
\r
DOTALL
.
[\s\S]
/<img alt="([\s\S]+?)" src="http:\/\/(.+?)\.(jpg|gif)">/
Javascript 正規表現の複数行フラグが機能しないを参照してください。
.
また、前にエスケープしましたjpg|gif
。そうしないと、意図したものではなく、任意の文字に一致.
します。
そうは言っても、正規表現を使用して HTML を解析することは本当に悪い考えです。さらに、質問に関連する詳細が欠落していない限り、jQuery 属性セレクターを使用してこれを簡単に行うことができます。
$("img[src='http://.*\.gif|jpg']").each(function() {
var alt = $(this).attr("alt");
var src = $(this).attr("src");
...
});
または、属性が必要な場合alt
:
$("img[alt][src='http://.*\.gif|jpg']").each(function() {
var alt = $(this).attr("alt");
var src = $(this).attr("src");
...
});