JS 正则 匹配带端口号的IPV4地址

需求:正则匹配正确的IP地址

正确:
1.1.1.1
1.1.1.1:1
1.1.1.1:8080
错误:
1.1
1.1.1.1.1
1.1.1.1:
1.1.1.1:8080
299.299.299.299(单个数字是0~255之间的十进制整数)
1.1.1.1:65539(端口号为0-65535之间的十进制整数)

阅读 6k
3 个回答

可带端口号的IPV4地址:

  var reg = new RegExp(
    '^((1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[0-9])\\.(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[0-9])\\.(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[0-9])\\.(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[0-9])(\\:(6553[0-5]|655[0-2]\\d|65[0-4]\\d{2}|6[0-4]\\d{3}|([1-5]\\d{0,4}|\\d{0,4})))?)$'
  )
      if (!reg.test(value)) {
        callback(new Error('格式错误,请输入格式如:192.168.0.1:3345'))
      } else {
        callback()
      }

http://c.runoob.com/front-end...
这里最后面有ip的正则 ((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}
再接上端口的正则,端口1-65535 6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[0-5]\d{4}|[1-9]\d{0,3}
6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{0,3},如果需要匹配0,后面就再加一个0

拼在一起就是 ((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}\:(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[0-5]\d{4}|[1-9]\d{0,3})
((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}\:(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{0,3})

^(http://|https://)[a-z0-9]+([-.]{1}[a-z0-9]+).[a-z]{2,5}(:[0-9]{1,5})?(/.)?|^((http://|https://)?([0-9]|1-9|1[0-9]{2}|20-4|25[0-5]).){3}([0-9]|1-9|1[0-9]{2}|20-4|25[0-5])(:\d{0,5})?(/.*)?$

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题