在javascript中使用regexp验证url
我有一个字符串要验证它是否是有效的url。 我在谷歌上搜索过,我只能在url包含http或https时找到解决方案 我想使url成为有效的,即使它的域名前面不包含http示例->www.google.com 这些是我尝试过的一些URL,它们确实有效在javascript中使用regexp验证url,javascript,php,regex,Javascript,Php,Regex,我有一个字符串要验证它是否是有效的url。 我在谷歌上搜索过,我只能在url包含http或https时找到解决方案 我想使url成为有效的,即使它的域名前面不包含http示例->www.google.com 这些是我尝试过的一些URL,它们确实有效 http://blog.mattheworiordan.com/post/13174566389/url-regular-expression-for-links-with-or-without-the http://stackoverflow.co
http://blog.mattheworiordan.com/post/13174566389/url-regular-expression-for-links-with-or-without-the
http://stackoverflow.com/questions/37684/how-to-replace-plain-urls-with-links
http://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-an-url
但即使我给出的h/www.stackoverflow.com不是一个有效的url,他们也会验证它为真
另外/www.stackoverflow.com验证为true
它们不是有效的URL。有人能帮我写正则表达式吗。
我想自己写这个常规的exp
但是我找不到关于regexp的好教程。我几乎写不出这样的表达方式,比如包含一个字符,一个小字符
我相信这是我有点弱的地方,我想练习一些正则表达式。非常感谢您的帮助
请帮助我验证此url
更新
这是当前使用的regexp Iam
我恳请您制作一把js小提琴,这使得h/www.stackoverflow.com为假。很抱歉,所有答案都无效。您可以在以www开头的URL上使用此选项
function ValidURL(str) {
var pattern = new RegExp('(?:https?:\/\/|www\.)+[a-z0-9\-\.]+\.[a-z]{2,5}(?:(?:\/|#|\?)[^\s]*)?','i');
if(!pattern.test(str)) {
return false;
} else {
return true;
}
}
如果URL是字符串,则可以使用另一种方法来匹配URL
var x;
try {
var t = new URL( yourStringHere );
x = true;
}
catch( e ) {
x = false;
}
请发布您现在获得的正则表达式。因此,将第一部分设置为可选…@Xatenev刚刚更新了它。未捕获的语法错误:无效的正则表达式:/?:https?://www.+[a-z0-9-.]+.[a-z]{2,5}:?:/| |【^s]*?/:无需重复
var x;
try {
var t = new URL( yourStringHere );
x = true;
}
catch( e ) {
x = false;
}