Javascript RegExp使用端口验证URL或使用端口(JS)验证IP

Javascript RegExp使用端口验证URL或使用端口(JS)验证IP,javascript,regex,Javascript,Regex,我需要一个健壮的RegExp,用端口验证URL或用端口验证IP,例如 >正确 >正确 我搜索了一下,但没有找到一个同时检查两者的表达式 isUrlValid(input) { const regex = '^((https:|http:|[/][/]|www.)([a-z]|[A-Z]|[:0-9]|[/.])*)$'​; const url = new RegExp(regex, 'g'); return url.test(input); } 试试这个 ^(?:http(s)?:

我需要一个健壮的RegExp,用端口验证URL或用端口验证IP,例如

>正确

>正确

我搜索了一下,但没有找到一个同时检查两者的表达式

isUrlValid(input) {
  const regex = '^((https:|http:|[/][/]|www.)([a-z]|[A-Z]|[:0-9]|[/.])*)$'​;
  const url = new RegExp(regex, 'g');
  return url.test(input);
}
试试这个

^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+:\d*
您的第二个域不包含本例中的点-我有这个

^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)*:\d*
试试这个

^-锚定至管柱起点。 https?:\/\/| www.-匹配http://或https://或www。。 ?:[a-zA-Z]+\d+\.\d+.\d+.\d+ ?:-使组不被捕获。 [a-zA-Z]+-一次或多次匹配任何字母,如果还需要数字,则添加0-9。 |:交替作为逻辑或工作。 \d+\。\d+。\d+。\d+-匹配IP地址的数字格式。 :\d{4}-将匹配4位数字,您可以根据您的用例进行调整。 $-锚定到字符串的末尾。
另外,为了提高性能,您可以在开始时使用?:将组设置为非捕获组。为了可读性,我故意不添加它们

那不匹配http://something:4200 :P它确实匹配http://123.456.78.900:foobar,这似乎也是错误的。我修正了我的答案
^((https?:\/\/)|(www.))(?:([a-zA-Z]+)|(\d+\.\d+.\d+.\d+)):\d{4}$