习题,正则表达式

来源:互联网 发布:g71指令编程简单实例 编辑:程序博客网 时间:2024/06/05 07:05

1、主要是验证用户界面输入信息是否合法

看效果图


很简单,熟悉基本的正则表达式用法就可,大部分时间都花在界面上了。

源码连接:http://download.csdn.net/detail/anlidengshiwei/8423187,地址点击打开链接

/*要求:用Java代码做以下正则匹配,模拟用户注册时,验证填写信息的准确性1、匹配邮箱2、匹配手机号3、匹配密码(6~12位之间,不能为纯数字)4、匹配IP(IPv4)题目分析:1、匹配邮箱总体标准:6~18个字符,可使用字母、数字、下划线,需以字母开头个别邮箱长度不同,不作考虑。*/class RegexTools{/*1、匹配邮箱总体标准:6~18个字符,可使用字母、数字、下划线,需以字母开头个别邮箱长度不同,不作考虑。*/public static boolean checkMail(String str){if(str == null)return false;String regex = "^[a-zA-Z](\\w|_){5,17}@\\w+\\.?\\w{2,3}$";return str.matches(regex);}/*2、匹配手机号130-132、186是联通的,133和153、189是电信的,134-139、159、187、188是移动的按照这个标准:第一位:1第二位:3、5、8总长度:11位*/public static boolean checkTelphone(String str){if(str == null)return false;String regex = "^1[358]\\d{9}$";return str.matches(regex);}/*匹配密码,不能为纯数字,那么我们就采用取反的思路来做*/public static boolean checkPassWord(String str){if(str == null)return false;String regex = "^(\\d){6,12}$";return !str.matches(regex);}/*4、匹配ipIP地址的长度为32位,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用英文句点“.”隔开。注意点:1、前三段有.分割,最后一段没有2、0-255的表示*/public static boolean checkIP4(String str){if(str == null)return false;String regex = "((2[0-4]\\d|25[0-5]|[01]?\\d?\\d)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d?\\d)$";return str.matches(regex);}}

界面类:

import java.awt.Frame;import java.awt.Button;import java.awt.Label;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;  import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.awt.Graphics;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.TextField;import javax.swing.JOptionPane; class RegisterFrameDemo{public static void main(String[] args) {final RegisterFrame frame = new RegisterFrame();ButtonClass btn = new ButtonClass(frame);btn.create();((Button)frame.getComponent(10)).addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String sName = ((TextField)frame.getComponent(5)).getText();String sPwd = ((TextField)frame.getComponent(6)).getText();String sMail = ((TextField)frame.getComponent(7)).getText();String sTel = ((TextField)frame.getComponent(8)).getText();String sIp = ((TextField)frame.getComponent(9)).getText();JOptionPane.showMessageDialog(frame,sName + "信息中检测结果如下:\n" + "密码是否合法:" + RegexTools.checkPassWord(sPwd) + "\n" +"邮箱是否合法:" + RegexTools.checkMail(sMail) + "\n" +"电话是否合法:" + RegexTools.checkTelphone(sTel) + "\n" +"IP是否合法:" + RegexTools.checkIP4(sIp) + "\n");}});((Button)frame.getComponent(11)).addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){((TextField)frame.getComponent(5)).setText("");((TextField)frame.getComponent(6)).setText("");((TextField)frame.getComponent(7)).setText("");((TextField)frame.getComponent(8)).setText("");((TextField)frame.getComponent(9)).setText("");}});}}class RegisterFrame extends Frame{public RegisterFrame(){setTitle("用户注册");setVisible(true); Toolkit tl = Toolkit.getDefaultToolkit();Dimension screenSize = tl.getScreenSize();int width = screenSize.width;int height =screenSize.height;setSize(289,256);setLocation(width/4,height/4);this.addWindowListener(new FrameEvent());this.setLayout(null);this.setResizable(false);this.repaint();}}class FrameEvent extends WindowAdapter{public void windowClosing(WindowEvent we){System.exit(0);   }}class ButtonClass{private Frame frame;public ButtonClass(Frame frame){this.frame = frame;}public void create(){//创建控件Label lblName = new Label("姓名:");Label lblPwd = new Label("密码:");Label lblMail = new Label("邮箱:");Label lblTel = new Label("手机号码:");Label lblIp = new Label("IP4地址:");TextField txtName = new TextField();TextField txtPwd = new TextField();TextField txtMail = new TextField();TextField txtTel = new TextField();TextField txtIp = new TextField();Button btnOk = new Button("确定");Button btnCancel = new Button("重置");//设置属性lblName.setSize(53,12);lblPwd.setSize(53,12);lblMail.setSize(53,12);lblTel.setSize(53,12);lblIp.setSize(53,12);txtName.setSize(157, 21);txtPwd.setSize(157, 21);txtMail.setSize(157, 21);txtTel.setSize(157, 21);txtIp.setSize(157, 21);btnOk.setSize(75, 23);btnCancel.setSize(75, 23);lblName.setLocation(35,47);lblPwd.setLocation(37, 81);lblMail.setLocation(37, 112);lblTel.setLocation(13, 147);lblIp.setLocation(19, 176);txtName.setLocation(93, 43);txtPwd.setLocation(93, 75);txtMail.setLocation(93, 107);txtTel.setLocation(93, 139);txtIp.setLocation(93, 171);btnOk.setLocation(93, 209);btnCancel.setLocation(175, 208);//添加控件this.frame.add(lblName);this.frame.add(lblPwd);this.frame.add(lblMail);this.frame.add(lblTel);this.frame.add(lblIp);this.frame.add(txtName);this.frame.add(txtPwd);this.frame.add(txtMail);this.frame.add(txtTel);this.frame.add(txtIp);this.frame.add(btnOk);this.frame.add(btnCancel);}}


补充知识:

对话框提示:

你可以使用JOptionPane,它提供了showMessageDialog、showInputDialog、showOptionDialog、


showConfirmDialog来实现相应的各种功能的对话框。

0 0
原创粉丝点击