0

可能重复:
检查 Javascript 字符串是否为 url

我对 RegEx 不是很熟悉,所以如果你能帮我解决这个问题,那就太好了。

我需要一个 JS 函数,它将:

  1. 检查字符串(textarea 输入)是否有任何 url。
  2. 如果是 - 搜索找到的第一个 url 并返回 array(true,url)
  3. 如果没有 - 返回数组(假,“”)

我遇到的问题是这种验证输入的模式。

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 是http://www.youtube这不是一个有效的 url,testing == true 也是如此。

我需要检查完整的网址:http ://www.youtube.com和任何其他网址。

4

1 回答 1

0

删除\S+要排除的表达式之后www.youtube,并添加一个单词边界\b。后面的第一个字母也{1}可以省略。

于 2012-12-12T00:08:33.573 回答