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

验证非法电话号码

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

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

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • dockerfile创建镜像的命令_什么是镜像

    dockerfile创建镜像的命令_什么是镜像Dockerfile创建完成后,可以使用dockerbuild命令根据Dockerfile构建一个镜像。1.首先准备好Dockerfile:2.执行构建命令:dockerbuild-tsecond:v1.0.注意最后有个点,代表使用当前路径的Dockerfile进行构建,-tsecond:v1.0取名并设定版本为v1.0。dockerbuild:用Dock…

  • gmap绘制路径_cad画可见点

    gmap绘制路径_cad画可见点将在地图上用鼠标左键点击的点绘制出来(两点之间用直线连接),并且能够随地图一起实现等比例缩放和拖拽。GMap主要涉及到几个坐标的转换:经纬度与GPoint的转换:GPoint是gMapControl控件坐标,坐标原点(0,0)位于控件的左上角,这个转换用函数FromLatLngToLocal()完成。GPoint与经纬度的转换:将控件坐标转换成经纬度,用函数FromLocalToL

    2022年10月25日
  • Django(42)DRF安装与使用[通俗易懂]

    Django(42)DRF安装与使用[通俗易懂]DRF介绍DRF是DjangoRestFramework单词的简写,是在Django框架中实现RestfulAPI的一个插件,使用他可以非常方便的实现接口数据的返回。Django中也可以使用J

  • 后台管理系统 – 权限设计

    后台管理系统 – 权限设计一、前言对于前端项目特别是中后台管理系统项目,权限设计是最复杂的点之一。一般来说权限设计需要后端来把关,毕竟相对来说前端是无法保证安全的,前端的代码和数据请求都可以伪造。而前端的权限设计更多是为了用户体验的考虑。前端保证体验,后端保证安全。由于前后端的开发差异和侧重点不同,在权限设计上也不一样。后端更多的是根据功能对象划分不同的权限模块,针对接口相应进行权限判断;而前端更多是针对页面路由进行模块划分,针对页面可访问进行判断。接下来将以后台管理系统为例,分享个人对前端权限设计的见解。(具体内容尽量做

  • centos sqlite3安装及简单命令

    centos sqlite3安装及简单命令

  • UCloud-201809-001:Redis服务未授权访问漏洞安全预警

    UCloud-201809-001:Redis服务未授权访问漏洞安全预警

    2021年10月28日

发表回复

您的电子邮箱地址不会被公开。

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