• ベストアンサー

URL 判定

入力された文字列がURLかどうかの判定はどのようにすれば良いですか? URL:https://www.google.co.jp URLではない:https://www.goog 何かメソッドがあるのでしょうか? よろしくお願いします。 javascript

質問者が選んだベストアンサー

  • ベストアンサー
  • 4017B
  • ベストアンサー率73% (1306/1777)
回答No.2

Javascript で処理するのなら、こんな感じですね。 ━ ココから ━━━━━━━━━━━━━━━━━━━━━━━━ <script type="text/javascript" defer="defer"> /*<![CDATA[*/ function my_func(){ if ( !document.getElementById("my-url").value ) { alert("empty..."); return; } else { var my_input = document.getElementById("my-url").value; var my_reg = new RegExp("^https?:\\/\\/[\\w_\\-\\.]+[^\\.]\\.([a-z]{2,2}\\.[a-z]{2,2}|[a-z]{2,3})\\/?$"); var my_result = my_input.match(my_reg); if ( my_result ) { alert("the text is URL."); } else { alert("the text is not URL."); } } } /*]]>*/</script> <p>判定テスト</p> <form id="my-form"> <input type="txet" size="60" id="my-url" value=""></input> <input type="button" id="my-button" value="判定する" onClick="my_func()"></input> </form> ━ ココまで ━━━━━━━━━━━━━━━━━━━━━━━━ コレが基本形として、後は適当に必要な処理を付け足していってください。 P.S. URLの形は結構複雑と言うか、実に様々な形がありまして…。なので回答者No.1さんが仰る通り、例文の「https://www.goog」も現状、実在はしませんが形式的には合ってます。言わんとする所は分かります。要は標準的な「http://~」で始まる普通?のURLを判別したいと言う事なのでしょう。また通常の運用でも、ほぼその解釈で間違いありません。 この解答例だといわゆる「ドメイン名のみ」のURLでしか通りません。つまり「http://example.com/abc/123.html」だと「NO判定」となります。普通はURLと申しますと、末尾のファイル名まで込みで考えるものですが…例文がドメイン名のみで指定してあったので、それに従いました。 ディレクトリ階層やファイル名を含めた判別をするためには、もう少し複雑な正規表現処理をしないとなりません。まあそれは宿題と言うか、必要に応じて自分で考えてください。と言うか他人ではどの様な処理が必要なのか、分かりかねますので…。

その他の回答 (3)

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.4

>実際にたっているかとか参照可能かという次元での質問です。 実際にアクセスで正常が返ってくるURLかどうかと言うことなら、実際にアクセスしてみないとわかりません。 ブラウザ上で動くJavaScriptではチェック不可能です。サーバーサイドなら可能。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>実際にたっているかとか参照可能かという次元での質問です。 そうなると非常に面倒かつ思い処理です。 まず実際に立っているかどうかはdnsでaレコードをチェックする必要があるでしょう。 また単にdnsに登録されていてもhttpやhttpsが立っているかどうかは接続チェックを してみないとわかりません。 また、本来は立っているが一時的にアクセスできない可能性も否定できません 任意の手法を用いれば不可能ではありませんが それらの流れをjavascriptで行うことは現実的ではないので 「できない」というのが回答で問題ないとおもいます

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

https://www.googだってURLだと思いますが? (実際にたっているかとか参照可能かという次元の話ではなく)

hp_win7
質問者

お礼

ご回答ありがとうございます。 実際にたっているかとか参照可能かという次元での質問です。

関連するQ&A

  • URLの文字列判定のプログラムについて

    javascriptの質問です URLを取得し、そのURL内に 「aaa」という文字列が含まれていたらAという文字列を返し 「bbb」という文字列が含まれていたらBという文字列を返し どちらにもあてはまらない場合は、Cという文字列を返す というプログラムを作成したいのですが、方法がわかりません どのようにプログラムを書けばよいのでしょうか お手数ですが教えてください よろしくお願いいたします

  • URLの名寄せをしたいのですが、どうすればよいでしょうか?

    URLの名寄せをしたいのですが、どうすればよいでしょうか? 例えば、 http://www.google.co.jp/search?任意の文字列1 http://www.google.co.jp/search?任意の文字列2 をすべて下記へ置換するには、どうしたらよいでしょうか? http://www.google.co.jp/

    • ベストアンサー
    • PHP
  • フォーム送信とURLエンコードについて

    CGI&PHP初心者です。 フォームのデータ送信とURLエンコードについて、お尋ねします。 method="GET" のフォームで、検索フォームをつくりたいとおもっています。 日本語も含めた検索語をフォーム送信したいと考えていますが、 送信の結果、エンコードされずにそのままブラウザのURL欄に入力した日本語が表示されてしまいます。 (ただ、メモ帳などにURLをコピーペーストするとURLエンコードがされているようです。) googleでは検索結果のアドレス欄にURLエンコードされた文字列がでているが、 同じように検索結果のアドレス欄にはURLエンコードされた文字列をだしたい。 URLに日本語をださずにURLエンコードさせた文字列を表示させるには、 どうすればいいのでしょうか? 補足:できるかぎり検索処理が重くならないにしたいと思います。     開発環境PHP&MySQL     動作環境Chrome のバージョン 38.0

    • ベストアンサー
    • CGI
  • perlでのURL判定

    テキストボックスなどで取得した文字列 にURLが含まれていたら、そこにhrefを埋め込むような処理は どうすればできますでしょうか? 教えて下さい。

    • 締切済み
    • CGI
  • 【jQuery】変数判定のような簡単なコマンド

    JavaScript/jQueryともに初心者です。 例えば、 1)対象が「0-9」のみで構成された文字列か判定 2)対象文字列にマルチバイト文字が含まれているか判定 などという割と簡単な作業をやりたいのですが、こういったコマンドとかプラグインとか関数とかはjQueryにあるのでしょうか。 関数を自作しようかと思ったのですがjQueryにあるなら無駄ですし… お詳しい方、よろしくお願いします。

  • エクセル関数でこんな判定?

    A1:B20にリストがあります。 A列は文字列です。 B列は数値です。 質問1 A列に入力があり、同行のB列が空白または0というものが1つでもあるかどうかを判定する関数を教えてください。 質問2 B列に入力があり、同行のA列が空白というものが1つでもあるかどうかを判定する関数を教えてください。 多分SUMPRODUCTを使うのだとは想像するのですが、手がでません・・・・。(泣)

  • URLについて

    URLを入れるときに、 httpの前に view-source: といれるとソースが見れますよね。 こういうURLに直接打ち込む文字列に関する情報で、なんらかの文字列をURLのどこかに入れたら、それ以前のURLは無視され、 その文字列以降のページが開かれる文字列(コマンド)みたいなのはないでしょうか? また、ほかの文字列でこうなるよ。というのがあれば教えていただけないでしょうか。よろしくお願いします。m(_ _)m

  • IE9の設定方法

    IE9を使っています。 ブラウザ上で特定のJavascriptを使用するために URL欄にjavascriptをコピペして使っていたのですが、 これがIE9にアップグレードしてからというもの URL欄にコピペしたjavascriptの文字列が自動で消去されるようになって困っています。 (「Javascript:※※※※」と入力すると 「Javascript:」の部分が自動消去され「※※※※」だけが残る。) コピペではなく全て手動でURL欄に入力すると 今度は入力した文字列が検索されるようになってしまいました。 (「Javascript:※※※」でエンターを押すと 「Javascript:※※※」の検索結果が出る) URL欄に入力したjavascriptの文字列を自動で消去もされず なおかつ検索もされず 普通に実行させる方法を教えてくれませんか? お願いします。

  • URLで何文字送れます?

    URLのあとに変数をつけて文字列など送ることが出来ますが 何文字までURLにのせておくることが出来るのでしょうか? 普通に試した場合かなりな量送れたのですが、正確な送信可能文字数などあれば知っておきたいと思っています。 またOKWEBなどの入力フォームもやはりURLでエンコードして送っているのでしょうか?

    • 締切済み
    • PHP
  • Excel VBAで文字列の日付を判定

    Excel VBAで文字列の日付を判定 文字列の書式で”19900101”などとセルに入力されている場合に実際に存在する日付かを判定する方法はありますでしょうか? たとえば、19990132などと入力されている場合はエラーにしたいのです。ISDATEを使うのかともおもいましたがうまくいきません。 よろしくお願いします。