成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊一聊常用正則表達式

開發 前端
提供日常開發中的一些js處理數據的方法,包括對數據的過濾,以及對數據的驗證等。也希望大家能留下你好用的方法~~

 [[411317]]

本文轉載自微信公眾號「網羅開發」,作者誰在花里胡哨。轉載本文請聯系網羅開發公眾號。

提供日常開發中的一些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.  
  7.   // var intPart = Number(value).toFixed(0); //獲取整數部分 
  8.   var intPart = parseInt(Number(value));//獲取整數部分 
  9.   // console.log('intPart',intPart) 
  10.   var intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,'); //將整數部分逢三一斷 
  11.   // console.log('intPartFormat',intPartFormat) 
  12.  
  13.   var floatPart = ".00"; //預定義小數部分 
  14.   var value2Array = value.split("."); 
  15.  
  16.   //=2表示數據有小數位 
  17.   if (value2Array.length == 2) { 
  18.     floatPart = value2Array[1].toString(); //拿到小數部分 
  19.     // console.log('floatPart',floatPart) 
  20.     if (floatPart.length == 1) { //補0,實際上用不著 
  21.       return intPartFormat + "." + floatPart + '0'
  22.     } else { 
  23.       return intPartFormat + "." + floatPart; 
  24.     } 
  25.  
  26.   } else { 
  27.     return intPartFormat + floatPart; 
  28.   } 
  29. }, 

銀行尾號四位數

  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.  
  64.  
  65.     if (parseInt(value.substr(6, 4)) % 4 == 0 || (parseInt(value.substr(6, 4)) % 100 == 0 && parseInt(value.substr(6, 4)) % 4 == 0)) { 
  66.       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]$/; 
  67.       //閏年出生日期的合法性正則表達式 
  68.     } else { 
  69.       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]$/; 
  70.       //平年出生日期的合法性正則表達式 
  71.     } 
  72.     if (ereg.test(value)) { //測試出生日期的合法性 
  73.       //計算校驗位 
  74.       S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7 + 
  75.         (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9 + 
  76.         (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10 + 
  77.         (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5 + 
  78.         (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8 + 
  79.         (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4 + 
  80.         (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2 + 
  81.         parseInt(idcard_array[7]) * 1 + 
  82.         parseInt(idcard_array[8]) * 6 + 
  83.         parseInt(idcard_array[9]) * 3; 
  84.       Y = S % 11; 
  85.       M = "F"
  86.       JYM = "10X98765432"
  87.       M = JYM.substr(Y, 1); //判斷校驗位 身份證最后一位為校驗位 如果身份證號碼正確 則最后一位會與M值相同 
  88.       if (M == idcard_array[17]) { 
  89.         return true
  90.       } else { 
  91.         console.log(Errors[3]); 
  92.         return false
  93.       } 
  94.     } else { 
  95.       console.log(Errors[3]); 
  96.       return false
  97.     } 
  98.   } else { 
  99.     console.log("身份證號碼長度不對"); 
  100.     return false
  101.   } 
  102. }, 

只能輸入數字和字母

  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.   } 

 

責任編輯:武曉燕 來源: 網羅開發
相關推薦

2018-09-27 15:25:08

正則表達式前端

2009-06-24 11:24:23

JavaScript驗正則表達式

2020-09-04 09:16:04

Python正則表達式虛擬機

2024-09-14 09:18:14

Python正則表達式

2023-09-04 15:52:07

2011-11-23 11:04:41

BGPAS_PATH正則表達式

2019-04-30 11:15:51

正則表達式JS前端

2016-11-10 16:21:22

Java 正則表達式

2009-09-16 17:15:57

正則表達式引擎

2022-01-04 11:35:03

Linux Shel正則表達式Linux

2023-09-13 08:12:45

2010-03-25 18:25:36

Python正則表達式

2017-05-12 10:47:45

Linux正則表達式程序基礎

2022-03-28 06:19:14

正則表達式開發

2021-01-27 11:34:19

Python正則表達式字符串

2009-02-18 09:48:20

正則表達式Java教程

2019-07-17 15:45:47

正則表達式字符串前端

2009-09-16 18:19:34

正則表達式組

2011-06-02 12:34:16

正則表達式

2010-03-03 10:51:32

正則表達式
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人福利视频 | 一级h片 | 国产在线aa | 国产成年人视频 | 91精品国产一区二区三区 | 精品久久九 | 成人h动漫亚洲一区二区 | 成人二区 | 国产精品久久国产精品 | 日日骚av | 91啪亚洲精品 | 成人av播放| 99久久久久久99国产精品免 | 日本精品在线观看 | 丁香婷婷在线视频 | 91精品国产综合久久久久久蜜臀 | 日韩综合| 亚洲欧洲成人av每日更新 | 五月激情婷婷在线 | 99久久精品免费看国产四区 | 日韩视频一区二区三区 | 黑人中文字幕一区二区三区 | av片在线观看网站 | www狠狠干| 欧美精品一区在线发布 | 国产成人一区二区三区久久久 | 国产精品我不卡 | 福利视频大全 | 91素人 | h在线看| 亚洲一页| 久久综合激情 | 久久精品色欧美aⅴ一区二区 | 狠狠色网 | 国产成人精品久久 | 中文字幕一区在线 | 日韩精品中文字幕在线 | 国产精品一区网站 | 五月花丁香婷婷 | 国产精品久久久久久久久久久久久久 | 亚洲视频一区在线观看 |