我试图设置一个regexp,它将检查字符串的开始,如果它包含http://或https://,它应该匹配它。

我该怎么做呢?我正在尝试下面的,但它不起作用:

^[(http)(https)]://

当前回答

不分大小写:

var re = new RegExp("^(http|https)://", "i");
var str = "My String";
var match = re.test(str);

其他回答

^作为字符串模式的开始,

? 允许0或1次重复。ie。,年代?S可以存在1次或者根本不需要存在。

/是正则表达式中的一个特殊字符,因此需要用反斜杠\/进行转义

/^https?:\/\//.test('https://www.bbc.co.uk/sport/cricket'); // true

/^https?:\/\//.test('http://www.bbc.co.uk/sport/cricket'); // true

/^https?:\/\//.test('ftp://www.bbc.co.uk/sport/cricket'); // false
^https?://

不过,您可能必须转义正斜杠,这取决于上下文。

不分大小写:

var re = new RegExp("^(http|https)://", "i");
var str = "My String";
var match = re.test(str);

(http | https) ?: \ \ / (\ S +)

这对我很有用

不是一个正则表达式专家,但我会尝试解释awnser。

(http|https):圆括号表示捕获组,“I”表示OR语句。

\/\/: "\"允许使用特殊字符,例如"/"

(\S+):任何在下一次空白之前都不是空白的内容

这也适用于URL编码的字符串。

^(https?)(:\/\/|(\%3A%2F%2F))