我正在尝试设置一个regexp来检查字符串的开头,如果它包含http://
或https://
,它应该匹配它。
我该怎么做?我正在尝试以下无法正常工作:
^[(http)(https)]://
答案 0 :(得分:302)
您对[]
的使用不正确 - 请注意[]
表示字符类,因此只匹配一个字符。表达式[(http)(https)]
转换为“匹配(
,h
,t
,t
,p
,{{1} }或)
。“ (忽略重复的字符。)
试试这个:
s
如果您确实想要使用替换,请改用此语法:
^https?://
答案 1 :(得分:35)
不区分大小写:
var re = new RegExp("^(http|https)://", "i");
var str = "My String";
var match = re.test(str);
答案 2 :(得分:25)
^https?://
您可能必须转义正斜杠,具体取决于上下文。
答案 3 :(得分:17)
^https?:\/\/(.*)
where (.*)
is match everything else after https://
答案 4 :(得分:15)
这应该有效
^(http|https)://
答案 5 :(得分:0)
这也适用于URL编码的字符串。
^(https?)(:\/\/|(\%3A%2F%2F))
答案 6 :(得分:0)
使这种大小写不敏感在asp.net中不起作用,所以我只指定了每个字母。
这是我要做的才能使其在asp.net RegularExpressionValidator 中工作:
[Hh][Tt][Tt][Pp][Ss]?://(.*)
注意:
(?i)
和使用/whatever/i
无法正常工作,可能是因为javascript并未引入所有区分大小写的功能^
,但没关系,但是(.*)
确实有效(如果没有(.*)
,表达式就不起作用,但是如果没有^
,表达式就起作用了) / li>
//
。如果需要,这里是完整的RegularExpressionValidator:
<asp:RegularExpressionValidator ID="revURLHeaderEdit" runat="server"
ControlToValidate="txtURLHeaderEdit"
ValidationExpression="[Hh][Tt][Tt][Pp][Ss]?://(.*)"
ErrorMessage="URL should begin with http:// or https://" >
</asp:RegularExpressionValidator>
答案 7 :(得分:0)
^
用于字符串模式的开始,
?
用于重复0或1次。即s?
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
答案 8 :(得分:0)
(http|https)?:\/\/(\S+)
这对我有用
不是正则表达式专家,但我将尝试解释遮阳篷。
(http | https):括号表示捕获组,“ I”为OR语句。
\ / \ /:“ \”允许使用特殊字符,例如“ /”
(\ S +):直到下一个空格都没有空格的所有内容