微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式检验

/**
 * 格式化数字
 * @param value   数字数值(必须参数)
 * @param decimal 小数点 (非必须参数:若没有,则认为2)
 * @returns 数字
 */
function formatNumber(value,decimal) {
	if(isNaN(value))
		return value;
	var re =  /^[0-9]+[0-9]*]*$/;
	if (!re.test(decimal)){
		decimal = 2;
	}
	var n = value.toFixed(decimal);
	var a = n.split(".");
	if(a[0].length > 3){
		var str = "";
		for(var i = a[0].length-1;i>=0;i=i-3){
			if(i  >= 3)
				str = ","+ a[0].substring(i-2,i+1) +str;
			else
				str = a[0].substring(i-2,i+1) +str;
		}
		if(decimal > 0)
			return str+"."+a[1];
		else
			return str;
	}else{
		return n;
	}
}

/**
 * 接收url传的参数
 * @param parName 参数名称(必须参数)
 * @returns 接收到参数
 */
function getParameter(parName){
	var str = parName.toLowerCase() + "=";
	var gvalue = "";
	var HREF = location.href;
	var upperHREF = location.href.toLowerCase();
	if(upperHREF.indexOf(str)>0){
	gvalue = HREF.substring(upperHREF.indexOf(str) + str.length,upperHREF.length);
	if(gvalue.indexOf('&')>0) gvalue = gvalue.substring(0,gvalue.indexOf('&'));
	if(gvalue.indexOf("#")>0) gvalue = gvalue.split("#")[0];
	}
	return gvalue;
}

/**
 * 去掉左右空格
 * @param str 字符(必须参数)
 * @returns
 */
function trim(str){   
	return str.replace(/(^\s*)|(\s*$)/g,"");   
}

/**
 * 
 * @param value 日期(必须参数)
 * @param formatter 格式(非必须参数:认为:yyyy-MM-dd)
 * 目前支持的格式有:①: yyyy-MM-dd; ②: yyyy/MM/dd;  ③:yyyy.MM.dd; ④:yyyy-MM; ⑤: yyyy/MM;  ⑥: yyyy.MM
 * @returns {String}
 */
function formatDate(value,formatter) {
	if (value == null || value == '') {
		return '';
	}
	if(formatter == null || formatter == "undefined" || formatter == ""){
		formatter = "yyyy-MM-dd";
	}
	var year = value.getFullYear();
	var month = value.getMonth()+1;
	var day = value.getDate();
	if(month < 10)
		month = "0"+month;
	if(day < 10)
		day = "0" + day;
	if(formatter == "yyyy-MM-dd"){
		return year + "-" + month + "-" + day;
	}else if(formatter == "yyyy/MM/dd"){
		return year + "/" + month + "/" + day;
	}else if(formatter == "yyyy.MM.dd"){
		return year + "." + month + "." + day;
	}else if(formatter == "yyyy-MM"){
		return year + "-" + month;
	}else if(formatter == "yyyy/MM"){
		return year + "/" + month;
	}else if(formatter == "yyyy.MM"){
		return year + "." + month;
	}else
		return ""; 
}

/**
 * 格式化日期时间
 * @param value 日期时间(必须参数)
 * @param formatter 格式(非必须参数:认为:yyyy-MM-dd HH:mm:ss)
 * 目前支持的格式有:①: yyyy-MM-dd HH:mm:ss; ②: yyyy/MM/dd HH:mm:ss;  ③:yyyy.MM.dd HH:mm:ss; ④:yyyy-MM-dd hh:mm:ss; ⑤: yyyy/MM/dd hh:mm:ss;  ⑥: yyyy.MM.dd hh:mm:ss
 * @returns 
 */
function formatDateTime(value,formatter) {
	alert(formatter);
	if (value == null || value == '') {
		return '';
	}
	if(formatter == null || formatter == "undefined" || formatter == ""){
		formatter = "yyyy-MM-dd HH:mm:ss";
	}
	var year = value.getFullYear();
	var month = value.getMonth()+1;
	var day = value.getDate();
	var hours = value.getHours();
	var minutes = value.getMinutes(); 
	var seconds = value.getSeconds();
	if((formatter == "yyyy-MM-dd hh:mm:ss" || formatter == "yyyy/MM/dd hh:mm:ss" || formatter == "yyyy.MM.dd hh:mm:ss") && hours >=13 && hours <=23){
		hours = hours-12;
	}
	if(month < 10)
		month = "0"+month;
	if(day < 10)
		day = "0" + day;
	if(hours < 10)
		hours = "0"+hours;
	if(minutes < 10)
		minutes = "0" + minutes;
	if(seconds < 10)
		seconds = "0"+seconds;
	if(formatter == "yyyy-MM-dd HH:mm:ss" || formatter == "yyyy-MM-dd hh:mm:ss"){
		return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
	}else if(formatter == "yyyy/MM/dd HH:mm:ss" || formatter == "yyyy/MM/dd hh:mm:ss"){
		return year + "/" + month + "/" + day + " " + hours + ":" + minutes + ":" + seconds;
	}else if(formatter == "yyyy.MM.dd HH:mm:ss" || formatter == "yyyy.MM.dd hh:mm:ss"){
		return year + "." + month + "." + day + " " + hours + ":" + minutes + ":" + seconds;
	}else
		return ""; 
}

/**
 * 将字符串转成日期
 * @param value 日期时间字符串(必须参数)
 * @param formatter 格式(非必须参数:认为:yyyy-MM-dd)
 * 目前支持的格式有:①: yyyy-MM-dd; ②: yyyy/MM/dd;  ③:yyyy.MM.dd; ④:yyyy-MM; ⑤: yyyy/MM;  ⑥: yyyy.MM
 * @returns 
 */
function parseDate(value,formatter){ 
	if(value == null)
		return "";
	if(formatter == null || formatter == "undefined" || formatter == ""){
		formatter = "yyyy-MM-dd";
	} 
	if(formatter == "yyyy-MM-dd"){
		var a =  value.split("-");
		return new Date(a[0],parseInt(a[1],10)-1,a[2]);
	}else if(formatter == "yyyy/MM/dd"){
		var a =  value.split("/");		
		return new Date(a[0],a[2]);
	}else if(formatter == "yyyy.MM.dd"){
		var a =  value.split(".");
		return new Date(a[0],a[2]);
	}else if(formatter == "yyyy-MM"){
		var a =  value.split("-"); 
		return new Date(a[0],1);
	}else if(formatter == "yyyy/MM"){
		var a =  value.split("/");		
		return new Date(a[0],1);
	}else if(formatter == "yyyy.MM"){
		var a =  value.split(".");
		return new Date(a[0],1);
	}else
		return "";
}

function formatFileSize(value){
	return (value/1024).toFixed(2)+"KB";
}

/**
 * ajax重装
 * @param url (必须参数)
 * @param data 传递参数(必须参数,没有请填写null)
 * @param success 成功操作(非必须参数)
 * @param async是否异步(true为异步,false为同步,认为同步)
 */
function ajax(url,data,success,async){
	if(url == null || url == "" || url == "undefined")
		return false;
	if(success == null || success == "undefined")
		success = function(data,textStatus){};
	if(async != false && async != true)
		async = false;
	$.ajax({
		url:url,data:data,type:"post",dataType:"json",async: false,success: function(result,textStatus){ 
			success(result,textStatus);
		}	
	});
}

/**
 * 检测客户端浏览器是否安装flash控件
 */
function flashChecker(){ 
	var hasFlash = false;
	if(document.all){
		try{
			hasFlash = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
		}catch(e){
			hasFlash = false;
	    }
	}else{ 
		if(navigator.plugins && navigator.plugins.length > 0){ 
			var swf = navigator.plugins["Shockwave Flash"]; 
			if(swf){ 
				hasFlash = true; 
			} 
		} 
	} 
	return hasFlash; 
} 

/**
 * 判断表单时候被改变,必须和setDefaultFormData(formid)方法联用
 * @param formTarget (必须参数) 表单节点
 */
function isFormChanged(formTarget){
	var isChanged = false;
	formTarget.find(":input").each(function(){
		var type = this.type;
		if(type == "select-one"){
			for (var j = 0; j < this.options.length; j++){  
	            if (this.options[j].selected != this.options[j].defaultSelected){  
	                isChanged = true;
	                return false;  
	            }  
			}  
		}else if(type == "checkBox" || type == "radio"){
			if(this.checked != this.defaultChecked){
				 isChanged = true; 
	             return false; 
			}
		}else if(type == "textarea" || type == "text" || type == "hidden" || type == "image" || type == "password"){
			if(this.value != this.defaultValue){
				isChanged = true;  
				return false; 
			}
		}else{}

	});
	return isChanged;
}

/**
 * 为表单设置认的值(认将当前表单中各元素的值设为认值,后常和isFormChanged(formid)联用)
 * @param formTarget (必须参数) 表单节点
 */
function setDefaultFormData(formTarget){
	formTarget.find(":input").each(function(){
		var type = this.type;
		if(type == "select-one"){
			for (var j = 0; j < this.options.length; j++){  
				this.options[j].defaultSelected = this.options[j].selected;
			}  
		}else if(type == "checkBox" || type == "radio"){
			this.defaultChecked = this.checked;
		}else if(type == "textarea" || type == "text" || type == "hidden" || type == "image" || type == "password"){
			this.defaultValue = this.value;
		}
	});
}

/**
 * 将字符串转成json
 * @param str 字符串 
 */
function stringToJson(str){
	return  eval('(' + str + ')'); 
}

/**
 * 将json转成字符串
 * @param json 对象
 */
function jsonToString(json){
	return JSON.stringify(json);
}

//换行和换空格
function to_text(str){
	if(str == null)
		return null;
	else
		return str.split("\r\n").join('<br>').split(" ").join('');
}
//小写数字转大写金额
function atoc(numberValue){
	var numberValue=new String(Math.round(numberValue*100)); // 数字金额
	var chineseValue=""; // 转换后的汉字金额
	var String1 = "零壹贰叁肆伍陆柒捌玖"; // 汉字数字
	var String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; // 对应单位
	var len=numberValue.length; // numberValue 的字符串长度
	var Ch1; // 数字的汉语读法
	var Ch2; // 数字位的汉字读法
	var nZero=0; // 用来计算连续的零值的个数
	var String3; // 指定位置的数值
	if(len>15){
		alert("超出计算范围");
		return "";
	}
	if (numberValue==0){
		chineseValue = "零元整";
		return chineseValue;
	}
	String2 = String2.substr(String2.length-len,len); // 取出对应位数的STRING2的值
	for(var i=0; i<len; i++){
		String3 = parseInt(numberValue.substr(i,1),10); // 取出需转换的某一位的值
		if ( i != (len - 3) && i != (len - 7) && i != (len - 11) && i !=(len - 15) ){
			if ( String3 == 0 ){
				Ch1 = "";
				Ch2 = "";
				nZero = nZero + 1;
			}
			else if ( String3 != 0 && nZero != 0 ){
				Ch1 = "零" + String1.substr(String3,1);
				Ch2 = String2.substr(i,1);
				nZero = 0;
			}
			else{
				Ch1 = String1.substr(String3,1);
				nZero = 0;
			}
		}
		else{ // 该位是万亿,亿,万,元位等关键位
			if( String3 != 0 && nZero != 0 ){
				Ch1 = "零" + String1.substr(String3,1);
				nZero = 0;
			}
			else if ( String3 != 0 && nZero == 0 ){
				Ch1 = String1.substr(String3,1);
				nZero = 0;
			}
			else if( String3 == 0 && nZero >= 3 ){
				Ch1 = "";
				Ch2 = "";
				nZero = nZero + 1;
			}
			else{
				Ch1 = "";
				Ch2 = String2.substr(i,1);
				nZero = nZero + 1;
			}
			if( i == (len - 11) || i == (len - 3)){ // 如果该位是亿位或元位,则必须写上
				Ch2 = String2.substr(i,1);
			}
		}
		chineseValue = chineseValue + Ch1 + Ch2;
	}
	if ( String3 == 0 ){ // 最后一位(分)为0时,加上“整”
		chineseValue = chineseValue + "整";
	}
	return chineseValue;
}


/**字符串数字相加
 * 
 * @param idstr  id的字符串 用,隔开
 */
function numAdd(idstr){
	var ids = idstr.split(",");
	var total = 0;
	for(var i = 0;i<ids.length;i++){
		
		total += Number($("#"+ids[i]).val());
	}
	return total;
}

//验证邮编  onchange="checkYb(this.id)"   var reg = /^0?1[3|4|5|8][0-9]\d{8}$/;  checkGdDh
function checkYb(object){
	var yb = document.getElementById(object.id).value; 
    var pattern =/^[0-9]{6}$/;
        if(yb!="")
        {
            if(!pattern.exec(yb))
            {
             $.messager.alert('警告','请输入正确的邮政编码!');
             object.value = "";
            }
        }
}

//验证以13,14,15,18开头的    /^0?1[3|4|5|8][0-9]\d{8}$/; 下面验证以1开头的11位数字
function checkMbPhone(object){
	var sjhm = document.getElementById(object.id).value; 
    var pattern =/^0?1[0-9]\d{9}$/;
        if(sjhm!="")
        {
            if(!pattern.exec(sjhm))
            {
             $.messager.alert('警告','请输入正确的手机号码!');
             object.value = "";
            }
        }
}

//电话号码验证  区号(3到4位)-电话号码(7到8位)(分机号(3位)或者以上)
function checkGdDh(object){
	var GdDh = document.getElementById(object.id).value; 
    var pattern = /^((0\d{2,3})-)(\d{7,8})(\((\d{3,})\))?$/;
        if(GdDh!="")
        {
            if(!pattern.exec(GdDh))
            {
             $.messager.alert('警告','请输入正确的电话号码!');
             object.value = "";
            }
        }
}


/**
 * 判断手机号码或固定电话号码(带区号或不带区号)是否符合要求
 * @param value 号码(必须参数)
 */
function isPhone(value){
	try{
		var regBox = {
		    regEmail : /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/,//邮箱
		    regMobile : /^1[3|4|5|7|8][0-9]{9}$/,//手机,以1开头,第二位是3、4、5、7、8,后面是0-9的9位数字,合为11位手机号码正则验证
		    regTel : /^0[\d]{2,3}-[\d]{7,8}$/,//固定电话,带区号带“-”的固话,以0开头,后跟2,3位数字,区号是3或4位,再加“-”,后面是7或8位的数字号码 
		    regTel2 : /^0[\d]{9,11}$/,//固定电话,带区号不带“-”的固话,以0开头,后跟2,3位数字,区号是3或4位,后面再跟7或8位的数字号码 
	    	regNoTel : /^[\d]{7,8}$/    //固定电话,不带区号的固话,7或8位的数字号码 
		};
		var mobile = regBox.regMobile.test(value);
		var tel = regBox.regTel.test(value);
		var tel2 = regBox.regTel2.test(value);
		var notel = regBox.regNoTel.test(value);
		if(mobile || tel || tel2 || notel)
			return true;
		else{
			alert("联系号码填写格式不正确,请重新填写!");			
			return false;
		}
	}catch(e){
		
	}
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


正则替换html代码中img标签的src值在开发富文本信息在移动端展示的项目中,难免会遇到后台返回的标签文本信息中img标签src属性按照相对或者绝对路径返回的形式,类似:<img src="qinhancity/v1.0.0/ima
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它是专门为文本处理设计的编程语言,也是行处理软件,通常用于扫描,过滤,统计汇总等工作,数据可以来自标准输入也可以是管道或文件。当读到第一行时,匹配条件,然后执行指定动作,在接着读取第二行数据处理,不会默认输出。如果没有定义匹配条件,则是默认匹配所有数据行,awk隐含循环,条件匹配多少次,动作就会执行多少次。逐行读取文本,默认以空格或tab键为分割符进行分割,将分割所得的各个字段,保存到内建变量中,并按模式或或条件执行编辑命令。与sed工作原理相比:s
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及他们的组合组成了一个规则,然后检查一个字符串是否与这种规则匹配来实现对字符的过滤或匹配。我们刚才在学习正则表达式的时候,我们表示数字,字母下划线的时候是用w表示的,为什么我们在书写的时候用的是w?我们可以发现我们分割空格的话,并没有达到我们预期的效果,这里我们可以使用正则表达式的方式进行分割。我们可以发现,我们和上面得到的结果不一致,既然出错了,肯定是我们的使用方式不对。看到这里我们就能感受到正则表达式的作用了,正则表达式是字符串处理的有力工具。
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发布,同步更新到和。欢迎大家投稿,,推荐或者自荐开源项目/资源/工具/文章~
本文涉及Shell函数,Shell中的echo、printf、test命令等。
常用正则表达,包括: 密码、 手机号、 身份证、 邮箱、 中文、 车牌号、 微信号、 日期 YYYY-MM-DD hh:mm:ss、 日期 YYY-MM-DD、 十六进制颜色、 邮政编号、 用户名、 QQ号
一、python【re】的用法1、re.match函数·单一匹配-推荐指数【★★】2、re.search函数·单一匹配-推荐指数【★★★★★】3、re.findall函数·多项匹配-推荐指数【★★★★★】4、re.finditer函数·多项匹配-推荐指数【★★★★】5、re.sub函数·替换函数-推荐指数【★★★★】二、正则表达式示例·总有一款适合你1、正则表达式匹配HTML指定id/class的标签2、正则表达式匹配HTML中所有a标签中的各类属性值3、获取标签的文本值
1.借助词法分析工具Flex或Lex完成(参考网络资源)2.输入:高级语言源代码(如helloworld.c)3.输出:以二元组表示的单词符号序列。通过设计、编制、调试一个具体的词法分析程序,加深对词法分析原理的理解,并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。由于各种不同的高级程序语言中单词总体结构大致相同,基本上都可用一组正则表达式描述,所以构造这样的自动生成系统:只要给出某高级语言各类单词词法结构的一组正则表达式以及识别各类单词时词法分析程序应采取的语义动作,该系统