このページのリンクらしき文字列を全て取得します。
function getLink1() {
var str = document.getElementsByTagName("BODY")[0].innerHTML;
var arr = str.match(/<a[^>]+>/ig);
str = "";
var len = arr.length;
for( i = 0; i < len; i++ ) {
str += arr[i] + "\n"
}
document.getElementById("resultLinkText").value = str;
}
function getLink2() {
var str = document.getElementsByTagName("BODY")[0].innerHTML;
var arr = str.match(/<a[\s\S]+?>/ig);
str = "";
var len = arr.length;
for( i = 0; i < len; i++ ) {
str += arr[i] + "\n"
}
document.getElementById("resultLinkText").value = str;
}
function getLink3() {
var str = document.getElementsByTagName("BODY")[0].innerHTML;
var arr = str.match(/<a[\s\S]+?a>/ig);
var arr2;
str = "";
var len = arr.length;
for( i = 0; i < len; i++ ) {
var arr2 = arr[i].match(/>(.+)</i);
try {
str+= arr2[1] + "\n";
} catch(e){}
}
document.getElementById("resultLinkText").value = str;
}
※ BODY より取得するので、IFRAME 内は対象外です ※ <a[^>]+> は、<a で始まって、> 以外が1つ以上続いて > で終わると言う意味です。 ※ <a[\s\S]+?> は、<a で始まって、
任意の文字が1つ以上続いて > で終わる最短の文字列と言う意味です。 ※ <a>〜</a> の 〜は単純には取得できません 一旦取得したアンカーより内側の文字列を取得しています ※ /ig の i は、大文字小文字を区別しないという意味です。 ※ /ig の g は、全ての対象を最後まで探すという意味です。 ■ もう少し詳しく JavaScriptの正規表現
タグ:javascript 正規表現
|
|






