我有一个字符串来验证它是否是有效的URL。
我用谷歌搜索了它,如果网址包含http or https
我想将网址设为valid
,即使它不包含域名example -> www.google.com
的http前面
这些是我尝试的一些网址,但确实有效。
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
不是有效的网址,他们也会将其验证为真
也/www.stackoverflow.com
验证为真
他们不是有效的网址。任何人都可以帮我写正则表达式。 我想自己编写这个常规exp 但是我无法在regexp上找到很好的教程。我几乎不能写出一些表达,比如包含一个字符,一个小字符。
我相信它的区域很弱,我想练习一些正则表达式。任何帮助是极大的赞赏。
请帮我验证这个网址。
更新
((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-_]*)?\??(?:[\-\+=&;%@\.\w_]*)#?(?:[\.\!\/\\\w]*))?)
这是目前正在使用的正则表达式
我恳请你做一个js小提琴,这使得h / www.stackoverflow.com变为假。对不起,但没有一个答案没有用。
答案 0 :(得分:0)
您可以使用此功能(适用于以www开头的网址。)
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;
}
}
答案 1 :(得分:0)
如果网址是字符串,您可以使用其他方法来匹配网址。
var x;
try {
var t = new URL( yourStringHere );
x = true;
}
catch( e ) {
x = false;
}