【发布时间】:2011-06-23 13:30:20
【问题描述】:
在文本字段中输入有效 URL 后立即调用函数 (myFunction()) 的最佳方法是什么?我已经用谷歌搜索了,但我没有找到任何有帮助的东西。使用正则表达式可能是最好的,但我需要一个能够识别各种 URL 的表达式:
http://google.tld, www.google.tld, http://www.google.tld
但仍然不认为像“index.php”这样的东西是一个 URL。有谁知道这样的表达方式吗?
【问题讨论】:
-
请不要在标题中添加标签。
-
google.com 与 index.php 比较棘手,因为知道前者是 URL 的唯一方法是列出正则表达式本身中的有效 TLD,使其缓慢而复杂。随着新 TLD 的添加,此类列表也需要更新,因此维护成本更高。您应该将
http://设为一项要求。 -
@Andy E:是的,我想,实际上这并不那重要。只要它能识别 www.google.com、ht tp://www.google.com 和 ht tp://google.com,我就很高兴。
-
您是否也需要能够识别完整的 URL?包括路径和查询参数?井号? (如 ht tp://google.com/search?q=call-a-function-if-a-valid-url-is-found-in-a-textarea#res )
-
“哦,伙计,我尝试输入 google.com,但是当我输入 google.co 时,函数触发了!” (是的,.co 是一个有效的域,所以你也需要处理这种情况)
标签: javascript regex url