我正在尝试编写一个正则表达式,以便在以下情况下返回true:
http://anything
http:///anything
(可以有任意数量的“/”)但是,对于以下情况,它应该返回false:
http:///
(可以有任意数量的“/”)我尝试了以下操作,但在某些情况下失败了。任何人都可以给出一些指示。
(/^(f|ht)tps?:\/\//i.test(jQuery("base").attr("href")
答案 0 :(得分:4)
您可以使用此正则表达式:
^(?:f|ht)tps?:\/{2,}[^\/].*
\/{2,}
会在您的输入中匹配2个或更多/
。
[^\/].*
之后 \/{2,}
将确保输入不会以http://
或https:///
结尾。
答案 1 :(得分:0)
var input = document.getElementById("input");
var output = document.getElementById("output");
var re = new RegExp("http://+[^/\\s][^\\s]*","g");
// To test a single do
// re.test(string)
output.innerHTML = input.innerHTML.match(re).join("\n");
#output {
background-color:#EEF5F9;
padding:10px;
}
h2 {
margin:0;
padding:0;
font-size:medium;
font-family:sans-serif;
}
pre {
margin:0;
padding:0 10px 0 0;
}
<h2>Inputs</h2>
<pre id="input">
http://foo
http:///bar
http://foo-bar/baz
http://
http:/
http:
http
htt
ht
h
http:/// (It can have any number of "/")
</pre>
<h2>Matched</h2>
<pre id="output"></pre>