常用正则表达式

337 阅读1分钟

1获取邮箱

var qstr = "235.ming@mp.163.com";
// 普通邮箱
function getEmailSub(qstr) {
    var reg = new RegExp("^(\\w+(\\.\\w+)*)@(\\w+(?:\\.\\w+)*\.[a-z]{2,})$");
    // var r = qstr.match(reg);
    var r = reg.exec(qstr);
    console.log(r);
    if (r != null) return unescape(r[1]);
    return null;
}
console.log(getEmailSub(qstr));
//支持中文后缀的邮箱
function isEmailNew(strEmail) {
	if (strEmail.length > 60) return false;
	var emailReg = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-\u4e00-\u9fa5d]+(\.[a-zA-Z0-9-\u4e00-\u9fa5d]+)*\.[a-zA-Z\u4e00-\u9fa5d]{2,}$/;
	if (emailReg.test(strEmail)) return true;
	return false;
}

2 获取查询字符串的某个key的值

//获取超链的携带参数
function getQueryStr(LocString, str) {
    var rs = new RegExp("(^|)" + str + "=([^&]*)(&|$)", "gi").exec(LocString),
        tmp;
    console.log(rs, tmp);
    if (tmp != rs) {
        return rs[2];
    }
    return "";
}
console.log(getQueryStr("a=1&b=2", "b"));

3 判断IP输入格式是否正确

function isIp(str) {
    var reg = /^(1?\d{1,2}|2[0-4]\d|25[0-5])\.(1?\d{1,2}|2[0-4]\d|25[0-5])\.(1?\d{1,2}|2[0-4]\d|25[0-5])\.(1?\d{1,2}|2[0-4]\d|25[0-5])$/;
    if (reg.test(str))
        return true;
    else
        return false
}
console.log(isIp("0.0.0.241"));

4 判断固话输入格式是否正确

function isTelNew(str) {
	var regu = /(^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{2,5}))?$)|(^0{0,1}13[0-9]{9}$)|(^0{0,1}15[0-9]{9}$)|(^0{0,1}18[0-9]{9}$)|(^[0][1-9]{1}[0-9]{9}$)/;
	var reg = new RegExp(regu);
	if (reg.test(str)) {
		return true;
	} else {
		return false;
	}
}

5 判断用户名输入格式是否正确

//非中文用户名昵称
function isUsernameNew(str) {
	var filter = /^[a-zA-Z]+\s*[.A-Za-z0-9_-]{5,20}\s*$/;
	if (!filter.test(str)) return false;
	return true;
}
var regCnExp = /^[\u4e00-\u9fa5][\u4e00-\u9fa5·]{0,23}[\u4e00-\u9fa5]$/;
var regEnExp = /^[a-zA-Z]{2}[a-zA-Z \.]{0,46}[a-zA-Z]{2}$/;
// var namereg = /^[\u4E00-\u9FA5A-Za-z\s]+(·[\u4E00-\u9FA5A-Za-z]+)*$/
function isRealnameNew(str) {
	return (regCnExp.test(str) || regEnExp.test(str));
}
// 中文用户名
function CnEnnameNew(name){
	return /^[\u4E00-\u9FA5A-Za-z\s]+(·[\u4E00-\u9FA5A-Za-z]+)*$/.test(name);
}
// 英文名称格式校验
function isEnNameNew(name) {
	return /^[a-zA-Z]+[a-zA-Z ]*[a-zA-Z]+$/.test(name);
}

6 要校验的地址信息格式正确

/**
 * address:要校验的地址信息;
 *  isValidAddressNewL(address,flag)
 *  返回值:
 *  0:地址符合规范;
 *  1:含有除“#”“-”以外其他字符,或长度超限;
 *  2:“区县旗”后面内容不规范;
 *  3:“区县旗”不符合规范;
 *flag:0表示不校验“区县旗”,1表示校验“区县旗
 */
function isValidAddressNewL(address, flag) {
	if (null == flag || "" == flag) {
		flag = "0";
	}
	if ("1" == flag && !/[区县旗]/g.test(address)) {
		return 3;
	} else {
		var reg = /^[a-zA-Z0-9\#\-\u4e00-\u9fa5]{1,60}$/;
		if (!reg.test(address)) {
			return 1;
		}
		if ("1" == flag) {
			reg = /^.+[区县旗]((.+([乡镇街道路]|苏木).+([楼村巷号栋幢室门组房座层排]|小区|胡同|里弄|大厦|单元).*)|([a-zA-Z0-9\#\-\u4e00-\u9fa5]{8,}))$/;
		} else {
			reg = /^(.+([乡镇街道路]|苏木).+([楼村巷号栋幢室门组房座层排]|小区|胡同|里弄|大厦|单元).*)|([a-zA-Z0-9\#\-\u4e00-\u9fa5]{8,})$/;
		}
		if (!reg.test(address)) {
			return 2;
		}
		return 0;
	}
}