使用 Javascript 正则表达式检查有效的 url
Posted
技术标签:
【中文标题】使用 Javascript 正则表达式检查有效的 url【英文标题】:Checking for a valid url using Javascript Regular Expressions 【发布时间】:2010-10-18 22:32:27 【问题描述】:为了检查 javascript 中的有效 url,我应该使用什么表达式?
【问题讨论】:
***.com/questions/206059, 441739, 442405, 690849, 161738 等等。正则表达式无法有效地解析 URL(请参阅 Gumbo 的有趣演示答案)。 另外,在什么意义上有效? foo.com.kg 是有效的,因为它是一个可能存在的域(在克里吉斯坦),而 foo.com.ap 不是。没有“ap”国家代码。但从某种意义上说,它们都是有效的。com.(两个字符)。 【参考方案1】:看看这个根据 RFC 1738 自动生成的complete regular expression for URLs。
【讨论】:
谢谢,我以前没见过。【参考方案2】:不取决于您希望支票有多复杂。
这是一个超级复杂的:
^(?#Protocol)(?:(?:ht|f)tp(?:s?)\:\/\/|~/|/)?(?#Username:Password)(?:\w+:\w+@)?(?#Subdomains)(?:(?:[-\w]+\.)+(?#TopLevel Domains)(?:com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|travel|[a-z]2))(?#Port)(?::[\d]1,5)?(?#Directories)(?:(?:(?:/(?:[-\w~!$+|.,=]|%[a-f\d]2)+)+|/)+|\?|#)?(?#Query)(?:(?:\?(?:[-\w~!$+|.,*:]|%[a-f\d2])+=(?:[-\w~!$+|.,*:=]|%[a-f\d]2)*)(?:&(?:[-\w~!$+|.,*:]|%[a-f\d2])+=(?:[-\w~!$+|.,*:=]|%[a-f\d]2)*)*)*(?#Anchor)(?:#(?:[-\w~!$+|.,*:=]|%[a-f\d]2)*)?$
实际上,正则表达式可以在平台之间轻松移植。来自 google 搜索的大多数示例都可以在 Javascript 中使用,尽管可能会进行一些“风味”修改。
【讨论】:
以上是关于使用 Javascript 正则表达式检查有效的 url的主要内容,如果未能解决你的问题,请参考以下文章
使用 C# 中的正则表达式操作检查 EditText 上的有效电子邮件 [关闭]