我正在编写一个函数来检查输入字符串是否是 Javascript 中的 url。我应该使用 substring(0,6) 并查看是否以“http://”开头?还是有更好的方法来实现?干杯。
问问题
305 次
5 回答
1
使用正则表达式:
/^http:/.test("http://example.com/")
如果您也想检查www
:/^(http:|www\.)/.test("http://example.com/")
并且与众不同:
function matchString(str,matches)
{
if(matches)
{
matchString.toCheck=matches;
}
var matched = [];
for(var i=[0,str.length];i[0]<i[1]; i[0]++)
{
for(var j=[0,matchString.toCheck.length];j[0]<j[1]; j[0]++)
{
if(!matched[j[0]])matched[j[0]]={c:0,i:-1};
if(matchString.toCheck[j[0]][matched[j[0]].c]==str[i[0]])
{
matched[j[0]].c++;
if(matched[j[0]].i==-1)matched[j[0]].i=i[0];
}
else if(matchString.toCheck[j[0]].length!=matched[j[0]].c)matched[j[0]]={c:0,i:-1};
}
}
return matched;
}
var urlVariants = matchString("https://",["http://","https://","www."]);
var isUrl = false;
for(var i=[0,urlVariants.length]; i[0]<i[1]&&!isUrl; i[0]++)
{
isUrl = (urlVariants[i[0]].i==0);//index at the start
}
console.log(isUrl);
于 2013-05-30T21:24:29.647 回答
1
你可以使用正则表达式
/^http:\/\//.test(urlString)
于 2013-05-30T21:25:06.503 回答
1
你可以使用:
if(myvalue.indexOf('https://') == 0 || myvalue.indexOf('http://') == 0)
取决于您想要获得的详细程度。我相信你可以在这里找到一个正则表达式,只要你四处搜索。
于 2013-05-30T21:19:12.277 回答
1
这样的事情应该处理简单的情况:
function is_url(url) {
return Boolean(url.match(/^https?:\/\//));
}
于 2013-05-30T21:23:36.423 回答
0
我认为正则表达式是一个更好的解决方案:
function isAnUrl(url){
var expression = /[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi;
var regex = new RegExp(expression);
if (url.match(regex))
return true;
else return false;
}
于 2013-05-30T22:11:09.213 回答