regex 正则表达式
首先贴出两个网址:
第一个《正则表达式30分钟入门教程》
http://deerchao.net/tutorials/regex/regex.htm
第二个 在线正则测试网站
http://tool.oschina.net/regex/
what is regex?
正则表达式就是 字符串规则
使用正则表达式,就是
1.为了找到符合规则的字符串,例如爬虫中的应用;
2.为了验证字符串是否符合规则,例如用户表单校验。
base Content
^匹配你要用来查找的字符串的开头,$匹配结尾。
javascript 中使用要使用 // 对表达式进行包裹,java 中直接使用即可。
javascript 使用例子:
/^[a-zA-Z0-9]{6,20}$/
project example
以下内容为自己项目中使用过的正则表达式
java中应用
/** * * @Description:手机号码校验 * @author: * @time:2016年12月14日 下午12:41:41 */
public static boolean telephoneNumCheck(String telephoneNum) {
Pattern p = Pattern
.compile("^(((13[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\\d{8})$");
Matcher m = p.matcher(telephoneNum);
return m.matches();
}
/** * * @Description:身份证号码校验 * @author: * @time:2016年12月14日 下午12:43:05 */
public static boolean idCardNumCheck(String idCardNum) {
Pattern p = Pattern
.compile("^(^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$)|(^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])((\\d{4})|\\d{3}[Xx])$)$");
Matcher m = p.matcher(idCardNum);
if (m.matches()) {
if (idCardNum.length() == 18) {
Integer[] idCardWi = { 7,9,10,5,8,4,2,1,6,3,7,2 };
// 这是除以11后,可能产生的11位余数、验证码,也保存成数组
Integer[] idCardY = { 1,0,2 };
// 用来保存前17位各自乖以加权因子后的总和
Integer idCardWiSum = 0;
for (int i = 0; i < 17; i++) {
idCardWiSum += Integer.parseInt(idCardNum.substring(i,i + 1)) * idCardWi[i];
}
int idCardMod = idCardWiSum % 11;// 计算出校验码所在数组的位置
String idCardLast = idCardNum.substring(17);// 得到最后一位身份证号码
if (idCardMod == 2) {
if ("X".equals(idCardLast) || "x".equals(idCardLast)) {
return true;
} else {
return false;
}
} else {
// 用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
if (Integer.parseInt(idCardLast) == idCardY[idCardMod]) {
return true;
} else {
return false;
}
}
}else{
return true;
}
} else {
return false;
}
}
/** * * @Description:邮编校验 * @author: * @time:2016年12月14日 下午2:01:21 */
public static boolean zipCodeCheck(String zipCode) {
Pattern p = Pattern.compile("^[1-9]\\d{5}$");
Matcher m = p.matcher(zipCode);
return m.matches();
}
/** * * @Description:身份证姓名校验 * @author: * @time:2016年12月14日 下午2:23:49 */
public static boolean nameCheck(String name) {
Pattern p = Pattern
.compile("[\\u4E00-\\u9FA5]{2,5}(?:·[\\u4E00-\\u9FA5]{2,5})*");
Matcher m = p.matcher(name);
return m.matches();
}
/** * 过滤特殊字符 * @param str * @return */
public static String specialCharacterFilter(String str){
String regEx = "[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.replaceAll("").trim();
}
javascript 应用
/**校验手机号*/
$.validator.addMethod("mobilePhone",function(value){
var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
if(myreg.test(value)){
return true;
}else {
return false;
}
},"请输入正确的手机号码");
/**校验长度*/
$.validator.addMethod("checkNameLen",function(value) {
if(/^[\u4e00-\u9fa5a-zA-Z0-9]{2,20}$/.test(value)) {
return true;
}
return false;
},"请输入2-20个汉字或2-20位字符,不包含特殊字符");
/**校验长度*/
$.validator.addMethod("checkUnameLen",function(value) {
if(/^[a-zA-Z0-9]{6,20}$/.test(value)){
return true;
}
return false;
},"请输入6-20位字符,不包含汉字及特殊字符");
/**密码校验**/
$.validator.addMethod("checkPassword",function(value) {
if(/^[a-zA-Z0-9_]{6,"请输入6-20位数字、字母或下划线");
/** * 校验全局唯一用户名 */
$.validator.addMethod("primaryUname",function(value,element) {
var succ = false;
if($("#customerId").val()!=""){
succ = true;
}
var username=$("#uname").val();
if(username == value){
succ=true
}else{
$.ajax({
type : "POST",url : unameCkeckPath,data : {nickName : value},async : false,success : function(msg) {
if (msg == "succ") {
succ = true
}
}
});}
return succ;
},"账户名已存在");
$.validator.addMethod("pwdEqUname",function(value) {
var username = $("#userName").val();
if (value != username) {
return true;
} else {
return false;
}
},"密码不能和用户名一样");
//检查第二次输入密码是否与上面的一样
$.validator.addMethod("repassEqual",function(value) {
var pwd1 = $("#loginPassword").val();
var pwd2 = value;
if (pwd1==pwd2) {
return true;
} else {
return false;
}
},"两次输入密码不一样");
// 检查邮箱,为空不检查
$.validator.addMethod("email",function(value) {
var isNul = false;
if(!value){isNul = true}
return isNul || /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value);
},"请输入正确的邮箱");