Java正则校验IP或不填

在开发过程中,经常需要对用户输入的IP地址进行校验。IP地址是计算机在网络上的唯一标识符,格式为四段由“.”分隔的数字,每段数字范围为0-255。本文将介绍如何使用Java正则表达式来校验IP地址或者校验用户输入是否为空。

IP地址的正则表达式

IP地址的正则表达式可以使用以下代码来进行校验:

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

public class IPAddressValidator {
    private static final String IPADDRESS_PATTERN =
        "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$";

    private static final Pattern pattern = Pattern.compile(IPADDRESS_PATTERN);

    public static boolean validate(final String ip){
        Matcher matcher = pattern.matcher(ip);
        return matcher.matches();
    }
}

在上面的代码中,我们定义了一个IPAddressValidator类,其中包含了一个validate方法,用于校验输入的IP地址是否符合规范。如果符合规范则返回true,否则返回false

判断是否为空的正则表达式

如果需要判断用户输入是否为空,可以使用以下代码:

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

public class EmptyValidator {
    private static final String EMPTY_PATTERN = "^\\s*$";

    private static final Pattern pattern = Pattern.compile(EMPTY_PATTERN);

    public static boolean isEmpty(final String input){
        Matcher matcher = pattern.matcher(input);
        return matcher.matches();
    }
}

上面的代码中,我们定义了一个EmptyValidator类,其中包含了一个isEmpty方法,用于校验输入是否为空。如果输入为空则返回true,否则返回false

使用示例

下面我们来演示如何使用上面定义的两个校验器:

public class Main {
    public static void main(String[] args) {
        String ip = "192.168.0.1";
        if (IPAddressValidator.validate(ip)) {
            System.out.println("IP地址格式正确");
        } else {
            System.out.println("IP地址格式错误");
        }

        String input = "";
        if (EmptyValidator.isEmpty(input)) {
            System.out.println("输入为空");
        } else {
            System.out.println("输入不为空");
        }
    }
}

在上面的示例中,我们首先校验了一个合法的IP地址,然后校验了一个空的输入。

总结

本文介绍了如何使用Java正则表达式来校验IP地址或判断输入是否为空。通过正则表达式,我们可以轻松地对用户输入进行校验,确保输入符合规范。希望本文对你有所帮助!