本文转载自微信公众号“秒杀开发”,作者玩转。转载本文请联系网路发展公众号。提供一些js在日常开发中处理数据的方法,包括数据过滤和数据校验。也希望大家能给大家留下有用的方法~~数据过滤手机号隐藏中间4位保留两位小数,三个逗号隔开,后面跟两位小数,多用于金额号,银行号,和金额末尾的四位数字转换为大写人民币和汉字的方法是获取Url携带的地址参数。金额以元和万元为单位。身份证号码是隐藏的。用户名已脱敏。账号为4位,全局替换一个空格。位数,包括大小写字母和特殊符号身份证号完整校验只能输入数字和字母校验特殊字符数据过滤手机号隐藏中间4位//手机号隐藏中间4位phoneHideMiddle(val){if(val){return`${val.substring(0,3)}****${val.substring(val.length-4)}`}else{return"";}}保留两位小数//keepTwodecimalskeepTwoNum(val){val=Number(val);returnval.toFixed(2);},三个逗号分隔,后跟两位小数,多用于金额数字//三个逗号分隔,小数点后两位是添加在末尾,主要用于金额数字floatThree(value){//console.log(value)value=""+value;if(!value)return'0.00';//varintPart=Number(value).toFixed(0);//获取整数部分varintPart=parseInt(Number(value));//获取整数部分//console.log('intPart',intPart)varintPartFormat=intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g,'$1,');//每隔t打破整数部分hird//console.log('intPartFormat',intPartFormat)varfloatPart=".00";//预定义小数部分varvalue2Array=value.split(".");//=2表示数据有小数位if(value2Array.length==2){floatPart=value2Array[1].toString();//获取小数部分//console.log('floatPart',floatPart)if(floatPart.length==1){//补0,其实不需要returnintPartFormat+"."+floatPart+'0';}else{returnintPartFormat+"."+floatPart;}}else{returnintPartFormat+floatPart;}},四位银行尾号//四位银行尾号bankCardNumLastFour(val){//val=Number(val);if(val){returnval.substring(val.length-4);}},数字金额转大写人民币汉字的方法//数字金额转大写人民币汉字的方法convertCurrency(money){//NumbervarcnNumsofChinesecharacters=newArray('零','一','二','三','四','武','鲁','七','八','九');//basicunitvarcnIntRadice=newArray('','ten','hundred','thousand');//对应整数部分展开单位varcnIntUnits=newArray('','万','十亿','万亿');//对应小数部分UnitvarcnDecUnits=newArray('angle','fen','millimeter','centi');//字符varcnInteger='whole'后跟整数量;//整数完成后的单位varcnIntLast='元';//最大处理数varmaxNum=999999999999999.9999;//金额整数部分varintegerNum;//金额小数部分vardecimalNum;//输出中文金额字符串varchineseStr='';//分隔th后使用的数组e金额,预定义的varparts;if(money==''){return'';}money=parseFloat(money);if(money>=maxNum){//超出最大处理数返回'';}if(money==0){chineseStr=cnNums[0]+cnIntLast+cnInteger;returnchineseStr;}//转换为字符串money=money.toString();if(money.indexOf('.')==-1){integerNum=money;decimalNum='';}else{parts=money.split('.');integerNum=parts[0];decimalNum=parts[1].substr(0,4);}//获取整数部分转换if(parseInt(integerNum,10)>0){varzeroCount=0;varIntLen=integerNum.length;for(vari=0;i1){constreg=name.match(/^[\u4e00-\u9fa5]+$/)returnBoolean(reg)}returnfalse},密码必须为8-18位,包含大小写字母和特殊符号//密码必须为8-18位,包含大小写字母和特殊符号/^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[!~@#$%^&*,\.])[0-9a-zA-Z!~@#$%^&*,\\.]{8,18}$/身份证号校验完成//*身份证号校验完成//****/isvalidateIdnumber(value){if(value.length==18){varErrors=newArray("验证通过!","身份证号码位数有误!","身份证号码出生日期超出范围或含有非法字符!","身份证号码验证通过卡号错误!”,“身份证区域不合法!");vararea={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"Taiwan",81:"HongKong",82:"Macau",91:"Overseas"};//身份证号码idcardvarY;//身份证号码全部取11的余数卡号经过特定算法处理后的值varJYM;//固定数值校验码的计算会用到varS;//身份证号的所有数字经过特定算法后的值varM;//校验位varidcard_array=value.split("");varereg;//console.log(idcard_array);//区域验证if(area[parseInt(value.substr(0,2))]==null){//$.fn.validatebox.defaults.rules.IDNumber.message=Errors[4];console.log(Errors[4]);returnfalse;}if(parseInt(value.substr(6,4))%4==0||(标准杆seInt(value.substr(6,4))%100==0&&parseInt(value.substr(6,4))%4==0)){ereg=/^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法正则表达式}else{ereg=/^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期合法性正则表达式}if(ereg.test(value)){//测试出生日期合法性//计算校验位S=(parseInt(idcard_array[0])+parseInt(idcard_array[10])*7+(parseInt(idcard_array[1])+parseInt(idcard_array[11]))*9+(parseInt(idcard_array[2])+parseInt(idcard_array[12]))*10+(parseInt(idcard_array[3])+parseInt(idcard_array[13])*5+(parseInt(idcard_array[4])+parseInt(idcard_array[14]))*8+(parseInt(idcard_array[5])+parseInt(idcard_array[15])*4+(parseInt(idcard_array[6])+parseInt(idcard_array[16])*2+parseInt(idcard_array[7])*1+parseInt(idcard_array[8])*6+parseInt(idcard_array[9])*3;Y=S%11;M="F";JYM="10X98765432";M=JYM.substr(Y,1);//判断校验位身份证的最后一位为校验位。如果身份证号码正确,则最后一位与M值相同if(M==idcard_array[17]){returntrue;}else{console.log(Errors[3]);returnfalse;}}else{console.log(Errors[3]);returnfalse;}}else{console.log("身份证号长度错误");returnfalse;}},只能输入数字和字母//onlynumbersandletters可以输入isvalidateLetterAndNum(str){constreg=/^[0-9a-zA-Z]+$/;console.log(reg.test(str));returnreg.test(str)},检查特殊字符//检查特殊字符isSpecialChars(str){varregEn=/[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im;varregCn=/[·!#¥(——):;""',|《。》?,【】[\]]/im;console.log(regEn.test(str))if(regEn.test(str)||regCn.test(str)){返回false}else{returntrue}}
