我试图设置一个regexp,它将检查字符串的开始,如果它包含http://或https://,它应该匹配它。
我该怎么做呢?我正在尝试下面的,但它不起作用:
^[(http)(https)]://
我试图设置一个regexp,它将检查字符串的开始,如果它包含http://或https://,它应该匹配它。
我该怎么做呢?我正在尝试下面的,但它不起作用:
^[(http)(https)]://
当前回答
^作为字符串模式的开始,
? 允许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
其他回答
^作为字符串模式的开始,
? 允许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?://
不过,您可能必须转义正斜杠,这取决于上下文。
这也适用于URL编码的字符串。
^(https?)(:\/\/|(\%3A%2F%2F))
您使用[]是不正确的——请注意,[]表示字符类,因此只匹配一个字符。表达式[(http)(https)]翻译成“匹配a(,一个h,一个t,一个t,一个p, a),或一个s。”(重复字符将被忽略。)
试试这个:
^https?://
如果你真的想使用交替,请使用以下语法:
^(http|https)://
不分大小写:
var re = new RegExp("^(http|https)://", "i");
var str = "My String";
var match = re.test(str);