ip and port check 正则

在网页开发中可能会遇到需要对在页面输入的ip和端口进行正确性验证,那么正则表达式就是最有力的工具:

1:ip的正则表达式:

格式是由“.”分割的四部分,每部分的范围是0-255;

每段的正则可以分几部分来写:200—255;100-199;10-99;0-9;

每一部分对应的正则表达式:   2[0-5][0-5];   1d{2};      [1-9]d;  d

所以连起来就是d|[1-9]d|1d{2}|2[0-5][0-5]

那么IP的正则就是(d|[1-9]d|1d{2}|2[0-5][0-5]).(d|[1-9]d|1d{2}|2[0-5][0-5]).(d|[1-9]d|1d{2}|2[0-5][0-5]).(d|[1-9]d|1d{2}|2[0-5][0-5])

js中表示为:/^(d|[1-9]d|1d{2}|2[0-5][0-5]).(d|[1-9]d|1d{2}|2[0-5][0-5]).(d|[1-9]d|1d{2}|2[0-5][0-5]).(d|[1-9]d|1d{2}|2[0-5][0-5])$/

2:端口的正则表达式:

格式是0-65535,。

同理可以分为几部分来构造:60000-65535;10000-59999;1000-9999;100-999;10-99;0-9;

每部分的正则是:           6[0-5]{2}[0-3][0-5];       [1-5]d{4};      [1-9]d{3};     [1-9]d{2};[1-9]d; [0-9]

整理完就是:([0-9]|[1-9]d{1,3}|[1-5]d{4}|6[0-5]{2}[0-3][0-5])

JS中表示为:/^([0-9]|[1-9]d{1,3}|[1-5]d{4}|6[0-5]{2}[0-3][0-5])$/

package com.xinwei.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class CheckUtil {
    public static boolean checkIPAddress(String ipStr) {
        String regex = "([1-9]|[1-9][0-9]|1\d\d|2[0-4]\d|25[0-5])\."
                + "([1-9]|[1-9][0-9]|1\d\d|2[0-4]\d|25[0-5])\."
                + "([1-9]|[1-9][0-9]|1\d\d|2[0-4]\d|25[0-5])\."
                + "([1-9]|[1-9][0-9]|1\d\d|2[0-4]\d|25[0-5])";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(ipStr);

        if (matcher.matches()) {
//            System.out.println("true");
            return true;
        } else {
//            System.out.println("false");
            return false;
        }
    }
    
    public static boolean checkAddress(String addressStr) {
        String regex = "([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-5]{2}[0-3][0-5])";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(addressStr);

        if (matcher.matches()) {
            System.out.println("true");
            return true;
        } else {
            System.out.println("false");
            return false;
        }
    }

    public static void main(String[] args) {
        // 10.221.105.225");//true
        // 127.400.600.2");//false
        CheckUtil.checkAddress("65536");
//        CheckUtil.checkIPAddress("127.400.600.2");
    }
}

原文地址:https://www.cnblogs.com/alamps/p/7066178.html