查询字符串URL的Javascript URL验证失败
Javascript URL Validation failing for query string urls
我使用以下函数来验证url,但它无法验证url与查询字符串,例如…http://www.example.com/sample/?id=39949&affid=4994
function checkURL(value) {
var urlregex = new RegExp("^(http|https|ftp)'://([a-zA-Z0-9'.'-]+(':[a-zA-Z0-9'.&%'$'-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])'.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)'.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)'.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|([a-zA-Z0-9'-]+'.)*[a-zA-Z0-9'-]+'.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(':[0-9]+)*(/($|[a-zA-Z0-9'.','?'''''+&%'$#'=~_'-]+))*$");
if (urlregex.test(value)) {
return (true);
}
return (false);
}
请帮忙解决这个问题。由于
从评论来看,问题是顶级域名不匹配。因此,为了扩展域匹配的规则,您可以在末尾添加|[a-zA-Z]{2,3}
而不是|[a-zA-Z]{2}
,这意味着需要在末尾添加2或3个alpha字符。或者为了完全消除顶级域检查,将所有com|edu|gov|int|
等匹配更改为简单的[a-zA-Z]+
,这是任何α字符一次或多次
匹配arpa|info|name|aero|coop|museum
或任何2或3个字母的域(删除2或3个字母的域,因为不需要它们):
function checkURL(value) {
var urlregex = new RegExp("^(http|https|ftp)'://([a-zA-Z0-9'.'-]+(':[a-zA-Z0-9'.&%'$'-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])'.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)'.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)'.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|([a-zA-Z0-9'-]+'.)*[a-zA-Z0-9'-]+'.(arpa|info|name|aero|coop|museum|[a-zA-Z]{2,3}))(':[0-9]+)*(/($|[a-zA-Z0-9'.','?'''''+&%'$#'=~_'-]+))*$");
return urlregex.test(value);
}
或匹配任何alpha字符域(一次或多次):
function checkURL(value) {
var urlregex = new RegExp("^(http|https|ftp)'://([a-zA-Z0-9'.'-]+(':[a-zA-Z0-9'.&%'$'-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])'.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)'.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)'.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|([a-zA-Z0-9'-]+'.)*[a-zA-Z0-9'-]+'.[a-zA-Z]+)(':[0-9]+)*(/($|[a-zA-Z0-9'.','?'''''+&%'$#'=~_'-]+))*$");
return urlregex.test(value);
}
相关文章:
- 如何为这些要求创建 URL 验证 jQuery
- URL验证REGEX-URL仅对http://有效
- Javascript InstaGram验证中的URL验证
- 检查url验证格式
- 使用Javascript进行URL验证;我工作不好
- 用于url验证的Javascript和PHP正则表达式
- 在url验证时禁用@symbol
- 真实世界URL的URL验证正则表达式
- 为hashbang URL验证noscript网站内容
- URL验证器:如果未键入http://,则动态传递
- 使用或不使用http和www的URL验证
- 查询字符串URL的Javascript URL验证失败
- JavaScript中不带www的URL验证
- 允许相对和绝对url的Javascript url验证
- 使用jquery进行Url验证
- 使用javascript的URL验证/连接
- Javascript url验证帮助
- 对完整的url使用正则表达式引导url验证
- 想要url验证regex
- javascript中用于URL验证的正则表达式