人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascriptについて質問です。

document.getElementByIdで渡された値の中の
<a href=http://q.hatena.ne.jp/ rel=nofollow>http://q.hatena.ne.jp/</a>
を、
http://q.hatena.ne.jp/
に書き換えるにはどうしたらいいですか?

なお、URL部分は毎回変わります。
詳しい方是非お教え下さい!

●質問者: にらたま
●カテゴリ:インターネット ウェブ制作
✍キーワード:JavaScript URL
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● pahoo
●27ポイント ベストアンサー

正規表現を使い、こんな感じではどうでしょうか。

var sour = "<a href=http://q.hatena.ne.jp/ rel=nofollow>http://q.hatena.ne.jp/</a>";
dest = sour.replace(/<a.*>(.*)<\/a>/, "$1");
alert(dest);
◎質問者からの返答

ばっちりです!いつもありがとうございます。


2 ● kn1967
●27ポイント
<html>
<body>
 <script type="text/javascript">
 <!--
 var a_tag = '<a href="http://q.hatena.ne.jp/" rel="nofollow">http://q.hatena.ne.jp/</a>';
 var url = a_tag.match(/href\s*=\s*"(http(s{0,1}):\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)"/);
 document.write(url[1]);
 //-->
 </script>
</body>
</html>

httpもしくはhttpsで始まるURLとして正しくない場合は何も返しません。

式の結果は配列になりますので注意が必要です。

a_tagという変数を使いましたが、document.getElementByIdの最後尾に.matchと続けても良いです。

◎質問者からの返答

新しいやり方をお教え頂いてありがとうございます!


3 ● Cherenkov
●26ポイント

<a href=http://q.hatena.ne.jp/ rel=nofollow>http://q.hatena.ne.jp/</a></p>

はdocument.getElementByIdのinnerHTMLの値だと思います。

「hrefの値」を得たいのか、「aタグで囲まれたアドレスの文字列」を得たいのかでちょっと変わります。

var elem = document.getElementById("hoge");
alert(elem.href);

var elem = document.getElementById("hoge");
alert(elem.textContent);
◎質問者からの返答

ご丁寧にありがとうございます。参考になりました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ