用Java验证姓名,年龄,电话怎么写。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Java验证姓名,年龄,电话怎么写。相关的知识,希望对你有一定的参考价值。
在JS里面验证了一次,姓名只能为汉字,不能为空,年龄只能为数字120以前,不能为空,电话只能为数字,且只能11位,不能为空 在Java 里面怎么再去验证一次。 求大神, 谢谢!紧急,12点以前要 可以加分。
在Servlet里能直接写吗? 取得页面的值。 怎么写
1、汉字验证
这个方法改一下就行了
* 计算字符串长度. 一个汉字的长度按2计算. 如果给定的字符串为null, 返回0.
*
* @param str
* 待计算长度的字符串
* @return 字符串长度
*/
public static int strlen(String str)
if (str == null || str.length() <= 0)
return 0;
int len = 0;
char c;
for (int i = str.length() - 1; i >= 0; i--)
c = str.charAt(i);
if ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z')|| (c >= 'A' && c <= 'Z')) //字母, 数字
len++;
else
if (Character.isLetter(c)) //中文
len += 2;
else //符号或控制字符
len++;
return len;
2、电话
我给你个思路
就是把字符串转化为数字,然后用try catch 如果呢异常就表明是数字,至于长度length一下就行了,
或用这个
邮编号码:xxx.xxxx(都为数字)
固定电话号码:xx-xxxx-xxxx(都为数字)
手机号码:xxx-xxxx-xxxx(都为数字)
一般来说,基本的校验功能留给页面去处理,可以减轻服务器的负担。建议这些功能放在页面完成。
java中的正则表达式:
/**
* java正则表达式来判断是否EMAIL邮件
*
* @param number
* 待检测字符串
* @return 若是返回true,否则返回false
*/
import org.apache.oro.text.regex.MalformedPatternException;
import org.apache.oro.text.regex.Pattern;
import org.apache.oro.text.regex.PatternCompiler;
import org.apache.oro.text.regex.PatternMatcher;
import org.apache.oro.text.regex.Perl5Compiler;
import org.apache.oro.text.regex.Perl5Matcher;
public static boolean checkFomatNumber(String number)
//*Regexp匹配模式
//String postCodeRegexp = "([0-9]3)+.([0-9]4)+"; //邮政编码的匹配模式
//String phoneRegexp = "([0-9]2)+-([0-9]4)+-([0-9]4)+";//固话的匹配模式
String mobileRegexp = "([0-9]3)+-([0-9]4)+-([0-9]4)+"; //手机的匹配模式
PatternCompiler compiler = new Perl5Compiler();
PatternMatcher matcher = new Perl5Matcher();
Pattern pattern = null;
// Initialization of compiler, matcher, and input omitted;
try
//pattern = compiler.compile(postCodeRegexp);
//pattern = compiler.compile(phoneRegexp);
pattern = compiler.compile(mobileRegexp);
catch (MalformedPatternException e)
return false;
if (matcher.matches(number, pattern))
return true;
else
return false;
3、年龄跟电话差不多,也是转换为数字,然后比较一下是否大于120
在Servlet里能直接写吗? 取得页面的值。 怎么写
追答方法你会写吧
你写三个方法
逐一验证就行了,具体的代码没有
if(userName!=null&&userName!="")
if(userName.matches("^[\u4e00-\u9fa5]*$"))
out.println("是中文的");
else
out.println("不是中文的");
else
out.println("姓名不能为空!");
参考技术B @SuppressWarnings("serial")
public class BizException extends RuntimeException
public BizException()
super();
public BizException(String message)
super(message);
public BizException(String message, Exception innerException)
super(message, innerException);
创建这样的一个自定义异常类,在你调用的时候就抛出下面这样的异常
//如果姓名为空
if(Helper.isNullOrEmpty(film.getName()))
throw new BizException("请输入名称");
servlet
if(null == nameString)
request.setAttribute("message", "请输入名称");
disp.forward(request, response);
return;
参考技术C 判断姓名是否汉字
public boolean gbk(String str)
boolean isGB2312=false;
if(!str.equals("") && !str.equals(null))
char[] chars=str.toCharArray();
for(int i=0;i<chars.length;i++)
byte[] bytes=(""+chars[i]).getBytes();
if(bytes.length==2)
int[] ints=new int[2];
ints[0]=bytes[0]& 0xff;
ints[1]=bytes[1]& 0xff;
if(ints[0]>=0x81 && ints[0]<=0xFE && ints[1]>=0x40 && ints[1]<=0xFE)
isGB2312=true;
break;
return isGB2312;
判断年龄
public boolean isAge(String age)
boolean isTrue = false;
if(!age.equals(null) && !age.equals(""))
Pattern pattern = Pattern.compile("[0-9]*");
if(pattern.matcher(age).matches())
int ageInt = Integer.parseInt(age);
if(ageInt < 120 && ageInt > 0)
isTrue = true;
return isTrue;
判断电话
public boolean isTel(String tel)
boolean isTrue = false;
if(!tel.equals(null) && !tel.equals(""))
Pattern pattern = Pattern.compile("[0-9]*");
if(pattern.matcher(tel).matches())
int telInt = Integer.parseInt(tel);
if(tel.length() < 11)
isTrue = true;
return isTrue;
直接编的,试试看OK不。追问
在Servlet里能直接写吗? 取得页面的值。 怎么写
本回答被提问者采纳 参考技术D 这个为啥不直接百度搜索呢用java写一个冒泡排序,封装一个学生,学生有属性,姓名,年龄,已学生年龄排序
用java写一个冒泡排序,封装一个学生,学生有属性,姓名,年龄,已学生年龄排序
参考技术A 请楼主稍微看一下代码,理解一下构造方法,方法覆盖和封装,不然可能会看不懂我的代码,尽管我的代码是菜鸟级别的.public class Test
@SuppressWarnings("null")
public static void main(String[] args)
Student[] students = new Student[4];//创建一个学生数组,以下进行初始化(了解一下构造方法)
students[0] = new Student("test1", 16);
students[1] = new Student("test2", 15);
students[2] = new Student("test3", 19);
students[3] = new Student("test4", 14);
//接下来就是进行冒泡排序了,其实和普通的冒泡排序是一样的
Student tempStudent = null;//用来做中间替换的
for (int i = 0; i < students.length; i++)
for (int j = 0; j < students.length; j++)
if (students[i].getAge()<students[j].getAge())
tempStudent = students[i];
students[i]=students[j];
students[j]=tempStudent;
for (Student student : students)
System.out.println(student);
//封装一个学生类
class Student
private String name;
private int age;
public Student(String name, int age)
this.name = name;
this.age = age;
public String getName()
return name;
public void setName(String name)
this.name = name;
public int getAge()
return age;
public void setAge(int age)
this.age = age;
@Override
public String toString()
return name+"\t"+age;
本回答被提问者采纳
以上是关于用Java验证姓名,年龄,电话怎么写。的主要内容,如果未能解决你的问题,请参考以下文章