Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery验证url验证进入无限循环_Javascript_Regex - Fatal编程技术网

Javascript JQuery验证url验证进入无限循环

Javascript JQuery验证url验证进入无限循环,javascript,regex,Javascript,Regex,我正在使用以下代码验证URL: 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)\

我正在使用以下代码验证URL:

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 (true === urlregex.test(textval.trim())) {
    return true;
}
return false
当我给出一个长url(超过200个字符)时,它会无限循环并终止我的网页,并给出消息“以下页面已无响应,您可以等待,直到它有响应或终止”

此:

if (condition === true) {
    return true;
} else {
    return false;
}
是一个反模式。使用

return (condition === true);
除此之外,与其使用自己的正则表达式进行URL匹配,不如使用

(5)以下以下::/{{1,3}}(1-3}}(3-0-5-10-10-9-10-10-10-10-10-10-10-10-10-9-10-9-10-9-9-9.9%无政府监管监管方)在上述两个国家(代码)的政府当局(代码)在上述上述上述代码)的监管监管监管局,在上述上述上述上述上述上述上述的政府政府的整体整体整体上,将不会不会不会不会不会对上述上述上述上述上述上述上述上述上述的政府的政府,政府的政府,以及政府的政府监管监管监管监管监管局,以及上述上述上述上述上述上述上述上述的政府,以及(10 10)的政府,以及(10 10 10)会将把把把把把把把(10.1.1.1.1.1.1.1.1.1.1.1.1,3-3-3-3-3-3-3-1-3}(1-3}(3()\[\]{};:“,«»””)/i;
它根本没有连接到jQuery。这是关于纯JS的。谢谢:)删除了字符类内的jQuery标记
&;
?它看起来可疑。没问题:)我认为这里唯一的选择是使用更简单的正则表达式。我不确定是否真的需要如此精确地签入JavaScript。是的,因此您可以忽略该大小写或wri这是一个不会导致指数回溯的新正则表达式,对吗?编写该正则表达式的人并不知道他们在做什么,所以我很怀疑尝试和修复它是否是一个好主意(而不是使用合适的URL验证程序,这很可能不是正则表达式)。
var urlregex = /\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/i;