日期:2014-05-18  浏览次数:21006 次

请教Struts的验证里的正则表达式,如何验证以下的电话号码!
邮编号码:xxx.xxxx(都为数字)
固定电话号码:xx-xxxx-xxxx(都为数字)
手机号码:xxx-xxxx-xxxx(都为数字)
最好给写上简单的说明!
谢谢各位了!
不要给我这种:
1、/\d{3}\.\d{4}/
2、/\d{2}\-\d{4}\-\d{4}/
3、/\d{3}\-\d{4}\-\d{4}/
在JAVA的类里不识别.


------解决方案--------------------
一般来说,基本的校验功能留给页面去处理,可以减轻服务器的负担。建议这些功能放在页面完成。

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;
}

=========================
javascript的正则表达式:
相应页面加入下面js代码

function CheckFomatNumber( ){
//s2 = document.Form1.postCode.value;
//s2 = document.Form1.phone.value;
s2 = document.Form1.mobile.value;

//var type = /^(\d{3})(\.\d{4})?$/; //邮政编码匹配格式
//var type = /^(\d{2})(\-\d{4})\-\d{4})?$/; //固定电话匹配格式
var type = /^(\d{3})(\-\d{4})\-\d{4})?$/; //移动电话匹配格式

/*
if(!s2.match(type)){
alert( "邮编的格式必须是xxx.xxxx,且均为数字! ");
return (false);
}
if(!s2.match(type)){
alert( "固定电话的格式必须是xx-xxxx-xxxx,且均为数字! ");
return (false);
}
*/
if(!s2.match(type)){
alert( "移动电话的格式必须是xxx-xxxx-xxxx,且均为数字! ");
return (false);
}
return (true);
}