验证非法电话号码「建议收藏」

验证非法电话号码

大家好,又见面了,我是全栈君。

      程序开发中常常须要用户输入用户信息或者联系方式,当中有一些数组的格式是固定的,程序处理逻辑也是依照这个格式来实现的,可是因为用户输入的是字符串,其灵活性较大,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不是一个合法的电话号码!"; }}}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115410.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • adb常用命令–安装apk[通俗易懂]

    adb常用命令–安装apk[通俗易懂]方法一:adbpush  adbpushxxxx.apk/system/app(安装到 system/app目录下,有时安装不成功)手机中的系统apk应用(*.apk)位置:/system/app安装新apk到手机 adbpushxxxx.apk/system/app。后面的/system/app就是apk的安装目录。adbpush没有adbinstall保险,

    2022年5月29日
    350
  • php 抽象工厂模式

    php 抽象工厂模式/*抽象工厂模式:用来生成一组相关或相互依赖的对象。抽象工厂模式与工厂方法模式的区别:抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。在编程中,通常一个产品结构,表现为一个接口或者抽象类,也就是说,工厂方法模式提供的所有产品都是衍生自同一个接口或抽

    2022年7月25日
    5
  • 实时 摔倒识别 /运动分析/打架等异常行为识别/控制手势识别等所有行为识别全家桶 原理 + 代码 + 数据+ 模型 开源!「建议收藏」

    实时 摔倒识别 /运动分析/打架等异常行为识别/控制手势识别等所有行为识别全家桶 原理 + 代码 + 数据+ 模型 开源!「建议收藏」文章目录一、基本过程和思想二、视频理解还有哪些优秀框架三、效果体验~使用手势:pythonrun_gesture_recognition.py健身_跟踪器:卡路里计算三、训练自己数据集步骤然后,打开这个网址:点击一下startnewproject但是官方的制作方法是有着严重bug的~我们该怎么做呢!原代码解读大家好,我是cv君,很多大创,比赛,项目,工程,科研,学术的炼丹术士问我上述这些识别,该怎么做,怎么选择框架,今天可以和大家分析一下一些方案:用单帧目标检测做的话,前后语义相关性很差(也有

    2022年6月21日
    46
  • 圆桌游戏_圆桌游戏txt

    圆桌游戏_圆桌游戏txt【问题描述】有一种圆桌游戏是这样进行的:n个人围着圆桌坐成一圈,按顺时针顺序依次标号为1号至n号。对1#include#includeusingnamespacestd;intn,f[109]

    2022年8月2日
    7
  • 腾讯业务架构:六大事业群

    腾讯业务架构:六大事业群2018年9月29日,腾讯宣布在BU化的基础上进行组织架构调整,将原有七大事业群调整为六大事业群,具体为:a.保留企业发展事业群(CDG)、互动娱乐事业群(IEG)、技术工程事业群(T…

    2022年9月18日
    0
  • Nmap常用命令总结「建议收藏」

    Nmap常用命令总结「建议收藏」1.nmap-sT192.168.96.4//TCP连接扫描,不安全,慢2.nmap-sS192.168.96.4//SYN扫描,使用最频繁,安全,快3.nmap-Pn192.168.96.4//目标机禁用ping,绕过ping扫描4.nmap-sU192.168.96.4//UDP扫描,慢,可得到有价值的服务器程序5.nmap-sI僵…

    2022年5月27日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号