有没有办法在JavaScript中检查字符串是否是URL?
RegExes被排除在外,因为URL最有可能写成stackoverflow; 也就是说它可能没有.com,www或者http.
所有,
我正在尝试使用JQuery的URL Validator插件.
http://docs.jquery.com/Plugins/Validation/Methods/url
我有一个带有URL的文本框.我想编写一个获取文本框值的函数,使用jquery的验证器插件来验证URL并返回true或false.
像Ex这样的东西:
function validateURL(textval)
{
// var valid = get jquery's validate plugin return value
if(valid)
{
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
我希望这是一个可重复使用的功能..
谢谢
我正在尝试为符合HTML5"url"输入类型(将在JavaScript中使用)的W3C标准的URL找到正则表达式.
请参阅W3C规范的要求.
两种可能性:
我发现这个关于URL正则表达式的其他StackOverflow 问题看起来非常有希望:
存在一个HTML5表单验证jQuery插件 - 它应该模拟HTML5表单验证功能.
此脚本使用以下正则表达式:
/(https?|ftp):\/\/(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?/
Run Code Online (Sandbox Code Playgroud)
我不知道剩下的这个,但乍一看它似乎在规范的"可能被空间包围"部分失败了.
有没有其他人试过这样做呢?有谁知道我在哪里可以找到兼容的正则表达式?
塔,罗宾.
仅使用 JavaScript 来验证 URI 是否适用于 Android 的稳健方法是什么(不必是正则表达式,是吗?)
也就是Android SDK端的校验不是用Java来做的;它是在使用 JavaScript 的网页中完成的。
编辑:通过“适用于 Android”,我的意思是 Android 可以找到一个使用该 URI 响应 Intent 的 Activity。
我想验证网址。它应该接受:
http://google.com
http://www.google.com
www.google.com
google.com
Run Code Online (Sandbox Code Playgroud)
我参考Regex 来匹配 URL。
但它不支持google.com.
我有一个用户进入该网站的表单.问题是一些用户把他们的电子邮件地址放在我不想要的地方.我想要一种方法来检查网址是否结构良好.例如,没有@,必须有一个根域.www子域是可选的.我无法在任何地方找到它.
我试过这段代码
if (!Uri.TryCreate("http://" + websiteurl, UriKind.Absolute, out uri) || null == uri)
Run Code Online (Sandbox Code Playgroud)
在错误时返回false但我的问题是它仍然在没有根域的情况下验证,例如我可以放入
http://websitename
Run Code Online (Sandbox Code Playgroud)
并验证我不想要的罚款.当我投入时,它确实返回错误
http://websitename@.
Run Code Online (Sandbox Code Playgroud)
有没有办法可以解决这个问题?我还补充道
http://在passthrough值中,因为url永远不会验证.
javascript ×5
url ×3
jquery ×2
regex ×2
asp.net ×1
c# ×1
html5 ×1
string ×1
uri ×1
validation ×1