博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
验证非法电话号码
阅读量:6704 次
发布时间:2019-06-25

本文共 3884 字,大约阅读时间需要 12 分钟。

      程序开发中常常须要用户输入用户信息或者联系方式,当中有一些数组的格式是固定的,程序处理逻辑也是依照这个格式来实现的,可是因为用户输入的是字符串,其灵活性较大,easy输入格式错误的数据。

      比如。用户联系信息的电话号码就是固定格式的数据。本实例将演示怎样利用正則表達式来确定电话号码格式是否匹配,实例结果下图所看到的。在程序中增加该模块能够禁止用户输入错误的电话号码。

设计过程:

    1)在项目中加入窗口类CheckPhoneNum。在该窗口类中加入3个文本框,分别用于输入姓名、年龄与电话号码,然后再加入一个“验证”button。

    2)编写“验证”button的事件处理方法,该方法获取用户在文本框中输入的电话号码字符串,然后调用方法check()进行验证,并使用对话框输出验证结果。关键代码例如以下:

  protected void do_button_actionPerformed(ActionEvent e) {    String text = phoneNumField.getText();// 获取用户输入    String info = check(text);// 对输入文本进行IP验证    JOptionPane.showMessageDialog(null, info);// 用对话框输出验证结果}
    3)编写check()方法。该方法用于验证指定的字符串与正确的电话号码格式是否匹配。首先推断字符串是否为空,然后再通过正則表達式对字符串进行验证。并将验证结果作为方法的返回值。

关键代码例如以下:

 
private String check(String text) {		if(text == null || text.isEmpty()){			return "请输入电话号码!";		}		//定义正則表達式,前3后8,或者前4后8		//比如“027-16816816、0431-12312345”都是合法的电话号码		String regex = "^\\d{3}-?\\d{8}|\\d{4}-?

\\d{8}$"; //推断是否为电话号码 if(text.matches(regex)){ return text+"\n是一个合法的电话号码。

"; }else{ return text+"\n不是一个合法的电话号码!"; } }

 

完整代码例如以下:

package com.lzw;import java.awt.EventQueue;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.border.EmptyBorder;public class CheckPhoneNum extends JFrame {        private JPanel contentPane;    private JTextField nameField;    private JTextField phoneNumField;    private JTextField ageField;        /**     * Launch the application.     */    public static void main(String[] args) {        EventQueue.invokeLater(new Runnable() {            public void run() {                try {                    CheckPhoneNum frame = new CheckPhoneNum();                    frame.setVisible(true);                } catch (Exception e) {                    e.printStackTrace();                }            }        });    }        /**     * Create the frame.     */    public CheckPhoneNum() {        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        setBounds(100, 100, 260, 190);        contentPane = new JPanel();        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));        setContentPane(contentPane);        contentPane.setLayout(null);                JLabel lblip = new JLabel("\u59D3\u540D\uFF1A");        lblip.setBounds(10, 15, 122, 15);        contentPane.add(lblip);                nameField = new JTextField();        nameField.setBounds(80, 10, 141, 25);        contentPane.add(nameField);                JButton button = new JButton("\u9A8C\u8BC1");        button.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                do_button_actionPerformed(e);            }        });        button.setBounds(90, 119, 93, 23);        contentPane.add(button);                JLabel label = new JLabel("\u7535\u8BDD\u53F7\u7801\uFF1A");        label.setBounds(10, 87, 60, 15);        contentPane.add(label);                phoneNumField = new JTextField();        phoneNumField.setBounds(80, 82, 141, 25);        contentPane.add(phoneNumField);                JLabel label_1 = new JLabel("\u5E74\u9F84\uFF1A");        label_1.setBounds(10, 50, 122, 15);        contentPane.add(label_1);                ageField = new JTextField();        ageField.setBounds(80, 45, 141, 25);        contentPane.add(ageField);    }    protected void do_button_actionPerformed(ActionEvent e) {    String text = phoneNumField.getText();// 获取用户输入    String info = check(text);// 对输入文本进行IP验证    JOptionPane.showMessageDialog(null, info);// 用对话框输出验证结果}    public String check(String text){    if(text == null || text.isEmpty()){        return "请输入电话号码。";    }    // 定义正則表達式    String regex = "^\\d{3}-?

\\d{8}|\\d{4}-?\\d{8}$"; // 推断输入数据是否为电话号码 if(text.matches(regex)){ return text + "\n是一个合法的电话号码!"; }else{ return text + "\n不是一个合法的电话号码!"; } } }

 

你可能感兴趣的文章
环形链表解决约瑟夫游戏问题
查看>>
NFS服务器
查看>>
MIUI V5八门神器不能用?一招教你搞定
查看>>
fastcgi_params 与 fastcgi.conf的差异
查看>>
文件操作最小权限
查看>>
系统学习redis之五——redis数据类型之list类型及操作
查看>>
Linux 中分区间数据迁移,原目录不变 - rsync
查看>>
学习规划
查看>>
[JS代码]如何判断ipad或者iphone是否为横屏或者竖屏 - portrait或者lan...
查看>>
我的Kali Linux***测试学习之路
查看>>
通过七层反向代理设置X-Frame-Options参数,实现页面frame防护/加载
查看>>
OKHTTP3 APNS推送时通过拦截器修改一些优化连接
查看>>
数据库审计---首选Netwrix的SQLsever数据库 审计工具
查看>>
itop 通过端口访问最简单设置方法
查看>>
web.xml 中的listener、 filter、servlet 加载顺序及其详解
查看>>
蓝牙防丢器原理、实现与Android BLE接口编程
查看>>
有博客了 好激动。。
查看>>
学习Linux精神绝招
查看>>
如何从零起步开发一款App
查看>>
iptables学习笔记
查看>>