Java实例——使用正则表达式实现对IP地址的验证

简介

作者简介:青铜码农,和大多数同学一样从零开始一步步学习,一步步积累。期待您的关注,让我们一起成长~注:本人学疏才浅,文章如有错误之处,敬请指正~

本章节内容简介:实现对IP地址的验证功能,把该功能加载到网络程序中,可以避免用户IP地址输入错误。

一、实现思路

1.创建窗体类CheckIPFrame

2.编写“验证”按钮的事件处理方法

3.编写验证IP地址的check()方法

二、所需技术

iPv4的ip地址都是(1~255).(0~255).(0~255).(0~255)的格式

下面给出相对应的正则表达式:

"^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."

+"(\\.(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)){3}$"

这里的写法没有考虑两种情况,一是172.00.01.3这种,前面以零开头,或者多个零的这种情况,二是本网络地址,如果想支持,可根据下面的解释进行扩展。

\d表示0~9的任何一个数字

{2}表示正好出现两次

[0-4]表示0~4的任何一个数字

| 的意思是或者

( )上面的括号不能少,是为了提取匹配的字符串,表达式中有几个()就表示有几个相应的匹配字符串

1\\d{2}的意思就是100~199之间的任意一个数字

2[0-4]\\d的意思是200~249之间的任意一个数字

25[0-5]的意思是250~255之间的任意一个数字

[1-9]\\d的意思是10~99之间的任意一个数字

[1-9])的意思是1~9之间的任意一个数字

\\.的意思是.点要转义(特殊字符类似,@都要加\\转义)
————————————————
​版权声明:此部分内容为CSDN博主「十案圈圈」的原创文章

三、实现过程

1.创建窗体类

在该窗体中添加一个输入IP地址的文本框和一个“验证”按钮并给按钮添加监听事件,代码如下:

public class CheckIPFrame extends JFrame {
    private JPanel contentPane;
    private JTextField jTextField;
​
    public CheckIPFrame() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 280, 128);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
​
        JLabel lblip = new JLabel("请输入IP地址:");
        lblip.setBounds(12, 14, 92, 15);
        contentPane.add(lblip);
​
        jTextField = new JTextField();
        jTextField.setBounds(100, 10, 141, 25);
        contentPane.add(jTextField);
​
        JButton button = new JButton("点击验证");
        button.setBounds(66, 57, 93, 23);
        contentPane.add(button);
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                jButton_actionPerformed(e);
            }
        });
    }
}

2.编写按钮的事件处理方法

private void jButton_actionPerformed(ActionEvent e) {
    String text = jTextField.getText();//获取用户输入
    String info = check(text);//调用check方法输入进行判断
    JOptionPane.showMessageDialog(null,info);//在对话框中输出验证
}

3.编写验证IP地址的check方法

private String check(String text) {
        if (text != null && !text.isEmpty()) {
            //定义正则表达式。
            String regex="^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])"
                    +"(\\.(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)){3}$";
            // 判断IP地址是否与正则表达式匹配。
            if (text.matches(regex)) {
                return text + "\n是一个合法的IP地址。";
            } else {
                return text + "\n不是一个合法的IP地址。";
            }
        }
        return "请输入要验证的IP地址!";
}

我是码龙,如果我的文章对你有帮助,请点个 👍🏻 支持我一下

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Waylon1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值