js使用正则表达式验证文本

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
var Validate = (function(){
	//验证图片
	var validateImg = function(str){
		var format = ['GIF','JPEG','BMP','JPG','SVG','PNG','DXF','TGA','SWF','TIFF'];
		return validateByFormat(format,str);
	}
	//验证上传文档
	var validateDoc = function(str){
		var format = ['DOC','XLS','PPT','DOCX','XLSX','PPTX','WPS','PDF','TXT'];
		return validateByFormat(format,str);
	}
	//验证普通文件
	var validateFile = function(str){
		return validateDoc(str)||validateImg(str);
	}
	//验证电话号码
	var validateTel = function(str){
		var reg=/^((\d{3})|(\d{3}\-))?13\d{9}$/;
		return validateByReg(str,reg);
	}
	//验证手机号码
	var validatePhone = function(str){
		var reg =/^((\+?[0-9]{1,4})|(\(\+86\)))?(13[0-9]|14[57]|15[012356789]|17[0678]|18[0-9])\d{8}$/;
		return validateByReg(str,reg);
	}
	//验证姓名
	var validateName = function(str){
		var reg=/^[\u0391-\uFFE5]+$/;
		return validateByReg(str,reg);
	}
	//验证数量
	var validateNum = function(str){
		var reg=/^\d+$/;
		return validateByReg(str,reg);
	}
	//验证身份证
	var  validateIDCard = function(str){
		var reg=/^\d{15}(\d{2}[A-Za-z0-9])?$/;
		return validateByReg(str,reg); 
	}
	//url验证
	var validateURL = function(str){
		var reg =/[a-zA-z]+:\/\/[^\s]/;
		return validateByReg(str,reg); 
	}
	//长度大于0
	var validateReqired = function(str){
		if(typeof str === 'string'){
			return str.trim().length>0?true:false;
		}
		return false;
	}
	//长度最大值
	var validateMax = function(str,max){
		if(typeof str === 'string'){
			return str.trim().length<max?true:false;
		}
		return false;
	}
	//长度最小值
	var validateMin = function(str,min){
		if(typeof str === 'string'){
			return str.trim().length>min?true:false;
		}
		return false;
	}
	var validateIn = function(str,min,max){
		return validateMin(str,min)&&validateMax(str,max);
	}
	/*
	 * 根据固定格式的公共验证方法
	 */
	var validateByFormat = function(format,str){
		for(var i=0;i<format.length;i++){
			var local =str.toUpperCase().indexOf(format[i]);
			if(local>-1&& local==str.length-format[i].length){
				return true;
			}
		}
		return false;
	}
	var validateByReg = function(str,reg){
		return new RegExp(reg).test(str);
	}
	return {
		is_img: validateImg,
		is_doc: validateDoc,
		is_file:validateFile,
		is_tel: validateTel,
		is_phone: validatePhone,
		is_name: validateName,
		is_num:  validateNum,
		is_IDCard: validateIDCard,
		is_url:	validateURL,
		required: validateReqired,
		max: validateMax,
		min: validateMin,
		between: validateIn
	}
});