有人有用于验证网址的正则表达式(不是用于在文本段落中找到它们)?JavaScript 片段将是首选。
URL 验证的正则表达式(在 JavaScript 中)
IT技术
javascript
regex
validation
url
2021-02-06 02:38:33
6个回答
在接受的答案中, bobince说得对:仅验证方案名称、://、空格和双引号通常就足够了。下面是如何在 JavaScript 中实现验证:
var url = 'http://www.google.com';
var valid = /^(ftp|http|https):\/\/[^ "]+$/.test(url);
// true
或者
var r = /^(ftp|http|https):\/\/[^ "]+$/;
r.test('http://www.goo le.com');
// false
或者
var url = 'http:www.google.com';
var r = new RegExp(/^(ftp|http|https):\/\/[^ "]+$/);
r.test(url);
// false
语法参考:
实际的 URL 语法非常复杂,并且不容易用正则表达式表示。大多数看起来简单的正则表达式都会给出许多假阴性和假阳性。看看这些努力是否有趣,但即使最终结果也不好。
此外,现在您通常希望允许 IRI 和老式 URI,因此我们可以链接到有效地址,例如:
http://en.wikipedia.org/wiki/Þ
http://例え.テスト/
我只会进行简单的检查:它是否以已知的好方法开始:名称?它没有空格和双引号吗?如果是这样,那么地狱,它可能已经足够好了。
试试这个正则表达式
/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
它最适合我。
我在这方面取得了一些成功:
/^((ftp|http|https):\/\/)?www\.([A-z]+)\.([A-z]{2,})/
- 它会检查以下一项或一项:ftp://、http:// 或 https://
- 它需要www。
- 它检查任意数量的有效字符。
- 最后,它检查它是否有一个域,并且该域至少有 2 个字符。
它显然并不完美,但它很好地处理了我的案例
<html>
<head>
<title>URL</title>
<script type="text/javascript">
function validate() {
var url = document.getElementById("url").value;
var pattern = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
if (pattern.test(url)) {
alert("Url is valid");
return true;
}
alert("Url is not valid!");
return false;
}
</script>
</head>
<body>
URL :
<input type="text" name="url" id="url" />
<input type="submit" value="Check" onclick="validate();" />
</body>
</html>
其它你可能感兴趣的问题