JS方法大小结

JS方法大总结

1、js验证身份证信息是否合法

 

 

//js验证身份证信息是否合法
function validateCard(pId, field){
		    var arrVerifyCode = [1,0,"x",9,8,7,6,5,4,3,2];
		    var Wi = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
		    var Checker = [1,9,8,7,6,5,4,3,2,1,1];
		    if(pId.length != 15 && pId.length != 18){
		    	return false;
		    }
		    var Ai=pId.length==18 ?  pId.substring(0,17)   :   pId.slice(0,6)+"19"+pId.slice(6,16);
		    if (!/^\d+$/.test(Ai)){
		    	return false;
		    }
		    var yyyy=Ai.slice(6,10) ,  mm=Ai.slice(10,12)-1  ,  dd=Ai.slice(12,14);
		    var d=new Date(yyyy,mm,dd) ,  now=new Date();
		     var year=d.getFullYear() ,  mon=d.getMonth() , day=d.getDate();
		    if (year!=yyyy || mon!=mm || day!=dd || d>now || year<1900){
		    	return false;
		    }
		    for(var i=0,ret=0;i<17;i++)  ret+=Ai.charAt(i)*Wi[i];    
		    Ai+=arrVerifyCode[ret %=11];     
		    return pId.length ==18 && pId != Ai?false:true;

  

2、判断浏览器类型及版本

//判断浏览器类型及版本
function CheckBrowser() {  
    ua = navigator.userAgent;  
    ua = ua.toLocaleLowerCase();  
    var browserVersion;  
    if (ua.match(/msie/) != null || ua.match(/trident/) != null) {  
        browserType = "IE";  
        //哈哈,现在可以检测ie11.0了!  
        browserVersion = ua.match(/msie ([\d.]+)/) != null ? ua.match(/msie ([\d.]+)/)[1] : ua.match(/rv:([\d.]+)/)[1];  
    } else if (ua.match(/firefox/) != null) {  
        browserType = "火狐";  
    } else if (ua.match(/opera/) != null) {  
        browserType = "欧朋";  
    } else if (ua.match(/chrome/) != null) {  
        browserType = "谷歌";  
    } else if (ua.match(/safari/) != null) {  
        browserType = "Safari";  
    }  
    var arr = new Array(browserType, browserVersion);  
    return arr;  
}

 

3、数定转化为大写形式

//转换为大写
function numberToCN(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){
	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);
	Ch2 = String2.substr(i, 1);
	nZero = 0;
	}
	}
	else{ // 该位是万亿,亿,万,元位等关键位
	if( String3 != 0 && nZero != 0 ){
	Ch1 = "零" + String1.substr(String3, 1);
	Ch2 = String2.substr(i, 1);
	nZero = 0;
	}
	else if ( String3 != 0 && nZero == 0 ){
	Ch1 = String1.substr(String3, 1);
	Ch2 = String2.substr(i, 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;
}

 3、实现千元分隔符

 

function formatNumber(num){  
 if(!/^(\+|-)?(\d+)(\.\d+)?$/.test(num)){  
  return num;  
 }  
 var a = RegExp.$1,b = RegExp.$2,c = RegExp.$3;  
 var re = new RegExp().compile("(\\d)(\\d{3})(,|$)");  
 while(re.test(b)){  
  b = b.replace(re,"$1,$2$3");  
 }  
 return a +""+ b +""+ c;  
}