javascriptについて質問です。


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

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

回答の条件
  • 1人2回まで
  • 登録:2009/07/06 08:30:52
  • 終了:2009/07/06 15:55:30

ベストアンサー

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/07/06 09:10:53

ポイント27pt

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

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);
id:freewriter

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

2009/07/06 15:54:33

その他の回答(2件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/07/06 09:10:53ここでベストアンサー

ポイント27pt

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

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);
id:freewriter

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

2009/07/06 15:54:33
id:kn1967 No.2

kn1967回答回数2915ベストアンサー獲得回数3012009/07/06 09:23:30

ポイント27pt
<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と続けても良いです。

id:freewriter

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

2009/07/06 15:55:08
id:Cherenkov No.3

Cherenkov回答回数1503ベストアンサー獲得回数4932009/07/06 13:52:24

ポイント26pt

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

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

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

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

  • aタグで囲まれたアドレスの文字列
var elem = document.getElementById("hoge");
alert(elem.textContent);
id:freewriter

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

2009/07/06 15:55:19
  • id:pahoo
    私の回答は手抜きをしているのでURLでなくても置換してしまいます (^_^;)
    もし厳密にURLだけという要件でしたら、id:kn1967さんが回答されている正規表現を使うと良いでしょう。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません