本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
聊一聊常用正则表达式
phpren · 300浏览 · 发布于2021-07-15 +关注

提供日常开发中的一些js处理数据的方法,包括对数据的过滤,以及对数据的验证等。也希望大家能留下你好用的方法~~

提供日常开发中的一些js处理数据的方法,包括对数据的过滤,以及对数据的验证等。也希望大家能留下你好用的方法~~

  • 数据过滤

    • 手机号码隐藏中间4位

    • 保留两位小数

    • 每三位逗号隔开,后面补两位小数,多用于金额数字

    • 银行尾号四位数

    • 数字金额转换为大写人民币汉字的方法

    • 获取Url携带的地址参数

    • 金额以元和万元为单位

    • 隐藏证件号

    • 用户姓名脱敏

    • 账号4位一空格

    • 字符全局替换

  • 数据验证

    • 手机号验证

    • 姓名校验

    • 密码必须为8-18位数,且包含大小写字母和特殊符号

    • 身份证号完整校验

    • 只能输入数字和字母

    • 校验特殊字符

数据过滤

手机号码隐藏中间4位


  1. //手机号码隐藏中间4位 

  2. phoneHideMiddle(val) { 

  3.   if (val) { 

  4.     return `${val.substring(0, 3)}****${val.substring(val.length - 4)}` 

  5.   } 

  6.   else { 

  7.     return ""; 

  8.   } 

保留两位小数


  1. //保留两位小数 

  2. keepTwoNum(val) { 

  3.   val = Number(val); 

  4.   return val.toFixed(2); 

  5. }, 

每三位逗号隔开,后面补两位小数,多用于金额数字


  1. //每三位逗号隔开,后面补两位小数,多用于金额数字 

  2. floatThree(value) { 

  3.   // console.log(value) 

  4.   value = "" + value; 

  5.   if (!value) return '0.00'; 


  6.   // var intPart = Number(value).toFixed(0); //获取整数部分 

  7.   var intPart = parseInt(Number(value));//获取整数部分 

  8.   // console.log('intPart',intPart) 

  9.   var intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,'); //将整数部分逢三一断 

  10.   // console.log('intPartFormat',intPartFormat) 


  11.   var floatPart = ".00"; //预定义小数部分 

  12.   var value2Array = value.split("."); 


  13.   //=2表示数据有小数位 

  14.   if (value2Array.length == 2) { 

  15.     floatPart = value2Array[1].toString(); //拿到小数部分 

  16.     // console.log('floatPart',floatPart) 

  17.     if (floatPart.length == 1) { //补0,实际上用不着 

  18.       return intPartFormat + "." + floatPart + '0'; 

  19.     } else { 

  20.       return intPartFormat + "." + floatPart; 

  21.     } 


  22.   } else { 

  23.     return intPartFormat + floatPart; 

  24.   } 

  25. }, 

银行尾号四位数


  1. //银行尾号四位数 

  2. bankCardNumLastFour(val) { 

  3.   // val = Number(val); 

  4.   if (val) { 

  5.     return val.substring(val.length - 4); 

  6.   } 

  7. }, 

数字金额转换为大写人民币汉字的方法


  1. //数字金额转换为大写人民币汉字的方法 

  2. convertCurrency(money) { 

  3.   //汉字的数字 

  4.   var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'); 

  5.   //基本单位 

  6.   var cnIntRadice = new Array('', '拾', '佰', '仟'); 

  7.   //对应整数部分扩展单位 

  8.   var cnIntUnits = new Array('', '万', '亿', '兆'); 

  9.   //对应小数部分单位 

  10.   var cnDecUnits = new Array('角', '分', '毫', '厘'); 

  11.   //整数金额时后面跟的字符 

  12.   var cnInteger = '整'; 

  13.   //整型完以后的单位 

  14.   var cnIntLast = '元'; 

  15.   //最大处理的数字 

  16.   var maxNum = 999999999999999.9999; 

  17.   //金额整数部分 

  18.   var integerNum; 

  19.   //金额小数部分 

  20.   var decimalNum; 

  21.   //输出的中文金额字符串 

  22.   var chineseStr = ''; 

  23.   //分离金额后用的数组,预定义 

  24.   var parts; 

  25.   if (money == '') { return ''; } 

  26.   money = parseFloat(money); 

  27.   if (money >= maxNum) { 

  28.     //超出最大处理数字 

  29.     return ''; 

  30.   } 

  31.   if (money == 0) { 

  32.     chineseStr = cnNums[0] + cnIntLast + cnInteger; 

  33.     return chineseStr; 

  34.   } 

  35.   //转换为字符串 

  36.   money = money.toString(); 

  37.   if (money.indexOf('.') == -1) { 

  38.     integerNum = money; 

  39.     decimalNum = ''; 

  40.   } else { 

  41.     parts = money.split('.'); 

  42.     integerNum = parts[0]; 

  43.     decimalNum = parts[1].substr(0, 4); 

  44.   } 

  45.   //获取整型部分转换 

  46.   if (parseInt(integerNum, 10) > 0) { 

  47.     var zeroCount = 0; 

  48.     var IntLen = integerNum.length; 

  49.     for (var i = 0; i < IntLen; i++) { 

  50.       var n = integerNum.substr(i, 1); 

  51.       var p = IntLen - i - 1; 

  52.       var q = p / 4; 

  53.       var m = p % 4; 

  54.       if (n == '0') { 

  55.         zeroCount++; 

  56.       } else { 

  57.         if (zeroCount > 0) { 

  58.           chineseStr += cnNums[0]; 

  59.         } 

  60.         //归零 

  61.         zeroCount = 0; 

  62.         chineseStr += cnNums[parseInt(n)] + cnIntRadice[m]; 

  63.       } 

  64.       if (m == 0 && zeroCount < 4) { 

  65.         chineseStr += cnIntUnits[q]; 

  66.       } 

  67.     } 

  68.     chineseStr += cnIntLast; 

  69.   } 

  70.   //小数部分 

  71.   if (decimalNum != '') { 

  72.     var decLen = decimalNum.length; 

  73.     for (var i = 0; i < decLen; i++) { 

  74.       var n = decimalNum.substr(i, 1); 

  75.       if (n != '0') { 

  76.         chineseStr += cnNums[Number(n)] + cnDecUnits[i]; 

  77.       } 

  78.     } 

  79.   } 

  80.   if (chineseStr == '') { 

  81.     chineseStr += cnNums[0] + cnIntLast + cnInteger; 

  82.   } else if (decimalNum == '') { 

  83.     chineseStr += cnInteger; 

  84.   } 

  85.   return chineseStr; 

  86. }, 

获取Url携带的地址参数


  1. //获取Url携带的地址参数 

  2. GetQueryString(name) { 

  3.   //index.html?token=9b68dd98306327bf&action=2 

  4.   var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); 

  5.   if (window.location.search != "") { 

  6.     var r = window.location.search.substr(1).match(reg); 

  7.   } else { 

  8.     if (window.location.hash.indexOf("?") > 0) { 

  9.       var tmp = window.location.hash.split("?"); 

  10.       var r = tmp[1].match(reg); 

  11.     } else { 

  12.       var r = null; 

  13.     } 

  14.   } 

  15.   if (r != null) { 

  16.     return decodeURI(r[2]); 

  17.   } 

  18.   return null; 

  19. }, 

金额以元和万元为单位


  1. //金额以元和万元为单位 

  2. moneyConvert(num) { 

  3.   var newNum = Number(num); 

  4.   if (10000 <= newNum) { 

  5.     return (newNum / 10000) + '万元' 

  6.   } else { 

  7.     return newNum + '元' 

  8.   } 

  9. }, 

隐藏证件号


  1. //隐藏证件号 

  2. certIdHide(val) { 

  3.   if (val) { 

  4.     var certId = val.substring(0, 1) + '****************' + val.substring(val.length - 1) 

  5.     return certId 

  6.   } 

  7. }, 

用户姓名脱敏


  1. //用户姓名脱敏 

  2. userNameHide(val) { 

  3.   if (val) { 

  4.     let name; 

  5.     if (val.length < 3) { 

  6.       name = '*' + val.substring(val.length - 1) 

  7.       return name 

  8.     } else { 

  9.       name = val.substring(0, 1) + '*' + val.substring(val.length - 1) 

  10.       return name 

  11.     } 

  12.   } 

  13. }, 

账号4位一空格


  1. //账号4位一空格 

  2. accountNumberSpace(val) { 

  3.   if (val) { 

  4.     return val.replace(/\s/g, "") 

  5.       .replace(/\D/g, "") 

  6.       .replace(/(\d{4})(?=\d)/g, "$1 "); 

  7.   } 

字符全局替换


  1. //字符全局替换 

  2. res.data.content = res.data.content.replace(/\<img/gi, '<img style="max-width:100%;height:auto" ') 

数据验证

手机号验证


  1. // 手机号验证 

  2. isvalidPhone(str) { 

  3.   const reg = /^1\d{10}$/ 

  4.   return reg.test(str) 

  5. }, 

姓名校验


  1. //姓名校验 

  2. isUserName(name) { 

  3.   if (name && name.length > 1) { 

  4.     const reg = name.match(/^[\u4e00-\u9fa5]+$/) 

  5.     return Boolean(reg) 

  6.   } 

  7.   return false 

  8. }, 

密码必须为8-18位数,且包含大小写字母和特殊符号


  1. //密码必须为8-18位数,且包含大小写字母和特殊符号 

  2. /^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[!~@#$%^&*,\.])[0-9a-zA-Z!~@#$%^&*,\\.]{8,18}$/ 

身份证号完整校验


  1. //   * 身份证号完整校验 

  2. // * ***/ 

  3. isvalidateIdnumber(value) { 

  4.   if (value.length == 18) { 

  5.     var Errors = new Array( 

  6.       "验证通过!", 

  7.       "身份证号码位数不对!", 

  8.       "身份证号码出生日期超出范围或含有非法字符!", 

  9.       "身份证号码校验错误!", 

  10.       "身份证地区非法!" 

  11.     ); 

  12.     var area = { 

  13.       11: "北京", 

  14.       12: "天津", 

  15.       13: "河北", 

  16.       14: "山西", 

  17.       15: "内蒙古", 

  18.       21: "辽宁", 

  19.       22: "吉林", 

  20.       23: "黑龙江", 

  21.       31: "上海", 

  22.       32: "江苏", 

  23.       33: "浙江", 

  24.       34: "安徽", 

  25.       35: "福建", 

  26.       36: "江西", 

  27.       37: "山东", 

  28.       41: "河南", 

  29.       42: "湖北", 

  30.       43: "湖南", 

  31.       44: "广东", 

  32.       45: "广西", 

  33.       46: "海南", 

  34.       50: "重庆", 

  35.       51: "四川", 

  36.       52: "贵州", 

  37.       53: "云南", 

  38.       54: "西藏", 

  39.       61: "陕西", 

  40.       62: "甘肃", 

  41.       63: "青海", 

  42.       64: "宁夏", 

  43.       65: "新疆", 

  44.       71: "台湾", 

  45.       81: "香港", 

  46.       82: "澳门", 

  47.       91: "国外" 

  48.     }; 

  49.     //身份证号码  idcard 

  50.     var Y; //为身份证号码所有数字经过特定算法以后对11取余所得到的数值 

  51.     var JYM; //固定数值 校验码的计算中会用到 

  52.     var S; //身份证号码所有数字经过特定算法以后所得到的值 

  53.     var M; //校验位数值 

  54.     var idcard_array = value.split(""); 

  55.     var ereg; 

  56.     //console.log(idcard_array); 

  57.     //地区检验 

  58.     if (area[parseInt(value.substr(0, 2))] == null) { 

  59.       // $.fn.validatebox.defaults.rules.IDNumber.message = Errors[4]; 

  60.       console.log(Errors[4]); 

  61.       return false; 

  62.     } 



  63.     if (parseInt(value.substr(6, 4)) % 4 == 0 || (parseInt(value.substr(6, 4)) % 100 == 0 && parseInt(value.substr(6, 4)) % 4 == 0)) { 

  64.       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]$/; 

  65.       //闰年出生日期的合法性正则表达式 

  66.     } else { 

  67.       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]$/; 

  68.       //平年出生日期的合法性正则表达式 

  69.     } 

  70.     if (ereg.test(value)) { //测试出生日期的合法性 

  71.       //计算校验位 

  72.       S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7 + 

  73.         (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9 + 

  74.         (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10 + 

  75.         (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5 + 

  76.         (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8 + 

  77.         (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4 + 

  78.         (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2 + 

  79.         parseInt(idcard_array[7]) * 1 + 

  80.         parseInt(idcard_array[8]) * 6 + 

  81.         parseInt(idcard_array[9]) * 3; 

  82.       Y = S % 11; 

  83.       M = "F"; 

  84.       JYM = "10X98765432"; 

  85.       M = JYM.substr(Y, 1); //判断校验位 身份证最后一位为校验位 如果身份证号码正确 则最后一位会与M值相同 

  86.       if (M == idcard_array[17]) { 

  87.         return true; 

  88.       } else { 

  89.         console.log(Errors[3]); 

  90.         return false; 

  91.       } 

  92.     } else { 

  93.       console.log(Errors[3]); 

  94.       return false; 

  95.     } 

  96.   } else { 

  97.     console.log("身份证号码长度不对"); 

  98.     return false; 

  99.   } 

  100. }, 

只能输入数字和字母


  1. //只能输入数字和字母 

  2. isvalidateLetterAndNum(str) { 

  3.   const reg = /^[0-9a-zA-Z]+$/; 

  4.   console.log(reg.test(str)); 

  5.   return reg.test(str) 

  6. }, 

校验特殊字符


  1. // 校验特殊字符 

  2. isSpecialChars(str) { 

  3.   var regEn = /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im; 

  4.   var regCn = /[·!#¥(——):;“”‘、,|《。》?、【】[\]]/im; 

  5.   console.log(regEn.test(str)) 

  6.   if (regEn.test(str) || regCn.test(str)) { 

  7.     return false 

  8.   } else { 

  9.     return true 

  10.   } 


相关推荐

PHP实现部分字符隐藏

沙雕mars · 1325浏览 · 2019-04-28 09:47:56
Java中ArrayList和LinkedList区别

kenrry1992 · 908浏览 · 2019-05-08 21:14:54
Tomcat 下载及安装配置

manongba · 970浏览 · 2019-05-13 21:03:56
JAVA变量介绍

manongba · 963浏览 · 2019-05-13 21:05:52
什么是SpringBoot

iamitnan · 1088浏览 · 2019-05-14 22:20:36
加载中

0评论

评论
我从小喜欢编程,一直在学习中,从未停止,未来也是如此!
小鸟云服务器
扫码进入手机网页