正则表达式检查字符串中是否存在http或https

时间:2012-05-16 19:37:29

标签: javascript regex

所以我有这段代码:

function validateText(str)
{
    var tarea = str;
    var tarea_regex = /^(http|https)/;
    if(tarea_regex.test(String(tarea).toLowerCase()) == true)
    {
        $('#textVal').val('');
    }
}

这适用于此:

https://hello.com
http://hello.com

但不适用于:

这是一个网站http://hello.com asdasd asdasdas

尝试做一些阅读,但我不在哪里放*?因为他们会根据这里检查字符串中任何地方的表达式 - > http://www.regular-expressions.info/reference.html

谢谢

5 个答案:

答案 0 :(得分:12)

从它的外观来看,你只是检查字符串中是否存在http或https。正则表达式对于此目的来说有点过分。使用indexOf

尝试这个简单的代码
function validateText(str)
{
    var tarea = str;
    if (tarea.indexOf("http://") == 0 || tarea.indexOf("https://") == 0) {
        // do something here
    }
}

答案 1 :(得分:8)

试试这个:

function validateText(string) {
  if(/(http(s?)):\/\//gi.test(string)) {
    // do something here
  }
}

答案 2 :(得分:4)

答案 3 :(得分:3)

您是否尝试过使用分词而非开头字符?

var tarea_regex = /\b(http|https)/;

它似乎做了我想要的想法。见这里:http://jsfiddle.net/BejGd/

答案 4 :(得分:3)

开头的^匹配字符串的开头。只需删除它。