聊一聊常用正则表达式

 

本文转载自微信公众号「网罗开发」,聊聊作者誰在花里胡哨。常用转载本文请联系网罗开发公众号。正则

提供日常开发中的表达一些js处理数据的方法,包括对数据的聊聊过滤,以及对数据的常用验证等。香港云服务器也希望大家能留下你好用的正则方法~~

数据过滤 手机号码隐藏中间4位 保留两位小数 每三位逗号隔开,后面补两位小数,多用于金额数字 银行尾号四位数 数字金额转换为大写人民币汉字的表达方法 获取Url携带的地址参数 金额以元和万元为单位 隐藏证件号 用户姓名脱敏 账号4位一空格 字符全局替换 数据验证 手机号验证 姓名校验 密码必须为8-18位数,且包含大小写字母和特殊符号 身份证号完整校验 只能输入数字和字母 校验特殊字符

数据过滤

手机号码隐藏中间4位

//手机号码隐藏中间4位 phoneHideMiddle(val) {    if (val) {      return `${ val.substring(0,聊聊 3)}****${ val.substring(val.length - 4)}`   }   else {      return "";   } } 

保留两位小数

//保留两位小数 keepTwoNum(val) {    val = Number(val);   return val.toFixed(2); }, 

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

//每三位逗号隔开,常用后面补两位小数,多用于金额数字 floatThree(value) {    // console.log(value)   value = "" + value;   if (!value) return 0.00;   // var intPart = Number(value).toFixed(0); //获取整数部分   var intPart = parseInt(Number(value));//获取整数部分   // console.log(intPart,正则intPart)   var intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{ 3})+$)/g, $1,); //将整数部分逢三一断   // console.log(intPartFormat,intPartFormat)   var floatPart = ".00"; //预定义小数部分   var value2Array = value.split(".");   //=2表示数据有小数位   if (value2Array.length == 2) {      floatPart = value2Array[1].toString(); //拿到小数部分     // console.log(floatPart,floatPart)     if (floatPart.length == 1) {  //补0,实际上用不着       return intPartFormat + "." + floatPart + 0;     } else {        return intPartFormat + "." + floatPart;     }   } else {      return intPartFormat + floatPart;   } }, 

银行尾号四位数

//银行尾号四位数 bankCardNumLastFour(val) {    // val = Number(val);   if (val) {      return val.substring(val.length - 4);   } }, 

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

//数字金额转换为大写人民币汉字的源码库方法 convertCurrency(money) {    //汉字的数字   var cnNums = new Array(零, 壹, 贰, 叁, 肆, 伍, 陆, 柒, 捌, 玖);   //基本单位   var cnIntRadice = new Array(, 拾, 佰, 仟);   //对应整数部分扩展单位   var cnIntUnits = new Array(, 万, 亿, 兆);   //对应小数部分单位   var cnDecUnits = new Array(角, 分, 毫, 厘);   //整数金额时后面跟的字符   var cnInteger = 整;   //整型完以后的单位   var cnIntLast = 元;   //最大处理的数字   var maxNum = 999999999999999.9999;   //金额整数部分   var integerNum;   //金额小数部分   var decimalNum;   //输出的中文金额字符串   var chineseStr = ;   //分离金额后用的数组,预定义   var parts;   if (money == ) {  return ; }   money = parseFloat(money);   if (money >= maxNum) {      //超出最大处理数字     return ;   }   if (money == 0) {      chineseStr = cnNums[0] + cnIntLast + cnInteger;     return chineseStr;   }   //转换为字符串   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) {      var zeroCount = 0;     var IntLen = integerNum.length;     for (var i = 0; i < IntLen; i++) {        var n = integerNum.substr(i, 1);       var p = IntLen - i - 1;       var q = p / 4;       var m = p % 4;       if (n == 0) {          zeroCount++;       } else {          if (zeroCount > 0) {            chineseStr += cnNums[0];         }         //归零         zeroCount = 0;         chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];       }       if (m == 0 && zeroCount < 4) {          chineseStr += cnIntUnits[q];       }     }     chineseStr += cnIntLast;   }   //小数部分   if (decimalNum != ) {      var decLen = decimalNum.length;     for (var i = 0; i < decLen; i++) {        var n = decimalNum.substr(i, 1);       if (n != 0) {          chineseStr += cnNums[Number(n)] + cnDecUnits[i];       }     }   }   if (chineseStr == ) {      chineseStr += cnNums[0] + cnIntLast + cnInteger;   } else if (decimalNum == ) {      chineseStr += cnInteger;   }   return chineseStr; }, 

获取Url携带的地址参数

//获取Url携带的云南idc服务商地址参数 GetQueryString(name) {    //index.html?token=9b68dd98306327bf&action=2   var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");   if (window.location.search != "") {      var r = window.location.search.substr(1).match(reg);   } else {      if (window.location.hash.indexOf("?") > 0) {        var tmp = window.location.hash.split("?");       var r = tmp[1].match(reg);     } else {        var r = null;     }   }   if (r != null) {      return decodeURI(r[2]);   }   return null; }, 

金额以元和万元为单位

//金额以元和万元为单位 moneyConvert(num) {    var newNum = Number(num);   if (10000 <= newNum) {      return (newNum / 10000) + 万元   } else {      return newNum + 元   } }, 

隐藏证件号

//隐藏证件号 certIdHide(val) {    if (val) {      var certId = val.substring(0, 1) + 
滇ICP备2023000592号-31