0

重複の可能性:
Javascript 文字列が URL かどうかを確認する

私は RegEx にあまり詳しくないので、この問題の解決を手伝っていただければ幸いです。

次のような JS 関数が必要です。

  1. 文字列 (textarea 入力) に URL があるかどうかを確認します。
  2. はいの場合 - 最初に見つかった URL を検索し、配列 (true,url) を返します
  3. いいえの場合 - 配列を返します(false,"")

私が抱えている問題は、入力を検証するこのパターンです。

function _is_url(url) {
    var pattern = /(((ht|f)tps?\:\/\/)?([a-zA-Z]{1}([\w\-]+\.)+([\w]{2,5})(:[\d]{1,5})?))\S+/i;
    var result = new Array();
    var testing = pattern.test(url);
    if(testing) {
        var newurl = url.match(pattern);
        result[0] = true;
        result[1] = newurl[0];
        console.log(result[1]);
    }
    else {
        result[0] = false;
        result[1] = "";
    }

    return result;
}

このパターンでは、URL が有効な URL ではないhttp://www.youtubeであっても == true をテストします。

必要なのは、完全な URL を確認することです: http://www.youtube.comおよびその他の URL。

4

1 に答える 1

0

\S+除外する表現の後にある を削除しwww.youtube、単語の境界を追加します\b。また{1}、最初の文字の後は省略できます。

于 2012-12-12T00:08:33.573 に答える