常用的一些正则验证

1、验证身份证号

/**
 * 验证身份证号
 * @param card
 * @returns {Boolean}
 */
function isCardNo(card) {   // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X   
	var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;   
	if(reg.test(card) === false)   {     
//		mui.toast("请输入正确的身份证号");     
		return false;   
	} else{
		return true;   
	}	  
}

2、验证护照号码

/**
 * 验证护照号码
 * @param code
 * @returns {Boolean}
 */
function ispassport(code){	
//	var reg = /^((1[45]\d{7})|(G\d{8})|(P\d{7})|(S\d{7,8}))?$/;  	
	var reg = /^(\w){1,10}?$/;  	
	if(!code || !reg.test(code)){
		return false;   
	}else{
		return true;   
	}
}

3、验证驾驶证

/**
 * 验证驾驶证
 * @param code
 * @returns {Boolean}
 */
function isDriverLicense(code){
	var reg = /^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/;  
	if(!reg.test(code)){
		return false;   
	}else{
		return true;   
	}
}

4、验证真实姓名

/**
 * 验证真实姓名
 * @param name
 * @returns {Boolean}
 */
function isName(name){
	var reg = /^[\u4e00-\u9fa5]{2,4}$/;  
	if(!reg.test(name)){
		return false;   
	}else{
		return true;   
	}
}

5、验证手机号

/**
 * 验证手机号
 * @param num
 * @returns {Boolean}
 */
function isPhone(phone){	
//	var reg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;  	
	var reg = /^[1][3,4,5,7,8][0-9]{9}$/;  	
	if((phone.length!=11) || !reg.test(phone)){
		return false;   
	}else{
		return true;   
	}
}

6、验证邮箱地址

/**
 * 验证邮箱地址
 * @param email
 * @returns {Boolean}
 */
function isEmail(email){
	var reg = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/; 	
	if(!reg.test(email)){
		return false;   
	}else{
		return true;   
	}
}

7、 验证码字符串是否为纯数字

/**
 * 验证码字符串是否为纯数字
 * @param str
 * @returns {Boolean}
 */
function isNum(str){
//	var reg = /^[0-9]*[1-9][0-9]*$/;
	var reg = /(^\d+$)/;
	if (reg.test(str)) {    
		return true;  
	} 
	return false;
}

8、验证日期格式 yyyy-MM-dd

/**
 * 验证日期格式 yyyy-MM-dd
 * @param date
 * @returns {Boolean}
 */
function isYMD(date){	
	var reg = /^(\d{4})(\-)([01][0-9])(\-)([0123][0-9])/;	
	if (reg.test(date)) {    
		return true;  
	} 
	return false;
}

9、手机号码、电话号码格式验证

/**
 * 手机号码、电话号码格式验证
 * @param a
 */
function isPhoneTel(a){
	String.prototype.Trim = function() {
	    var m = this.match(/^\s*(\S+(\s+\S+)*)\s*$/);
	    return (m == null) ? "" : m[1];
	}
	String.prototype.isMobile = function() {
	    return (/^(?:13\d|15[89])-?\d{5}(\d{3}|\*{3})$/.test(this.Trim()));
	}
	String.prototype.isTel = function() {
	    //"兼容格式: 国家代码(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(3位)" 
	    //return (/^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/.test(this.Trim())); 
	    return (/^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/.test(this.Trim()));
	}
	$(a).off('change');
	$(a).on('change',function(){
		if($(a).val().isMobile() || $(a).val().isTel()){
			$(a).val($(a).val().Trim());
			return true;
		}else{
			alert("请输入正确的手机号码或电话号码\n\n例如:13916752109或0712-3614072");
			$(a).focus();
	        return false;
		}
	});
	
}

下面是一些知识点:

match:唯一参数是一个正则表达式(或通过RegExp()构造函数将其转换为正则表达式),返回的是一个有匹配结果组成的数组。如果正则表达式设置了修饰符g,则该方法返回的数组包含字符串中的所有匹配结果。
           如果正则表达式没有设置修饰符g,match()就不会进行全局检索,只检索第一个匹配。
           如果match()返回一个数组a,那么a[0]存放的是完整的匹配,a[1]存放的则是与第一个圆括号括起来相匹配的子串,以此类推,为了和方法replace()保持一致,a[n]存放的是$n的内容。

^:匹配字符串的开头,在多行检索中,匹配一行的开头
[...]:方括号内的任意字符
\:将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。
?:匹配前一项0次或者1次,也就是说前一项是可选的,等价于{0,1}
\d:任何ASCII数字,等价于[0-9]
*:匹配前一项0次或者多次,等价于{0,}
$:匹配字符串的结尾,在多行检索中,匹配一行的结尾
( ):标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。
        用圆括号将所有选择项括起来,相邻的选择项之间用|分隔。但用圆括号会有一个副作用,使相关的匹配会被缓存,此时可用?:放在第一个选项前来消除这种副作用。
        其中 ?: 是非捕获元之一,还有两个非捕获元是 ?= 和 ?!,这两个还有更多的含义,前者为正向预查,在任何开始匹配圆括号内的正则表达式模式的位置来匹配搜索字符串,后者为负向预查,在任何开始不匹配该正则表达式模式的位置来匹配搜索字符串。
+:匹配前一项1次或者多次,等价于{1,}

 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值