自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聊一聊常用正則表達(dá)式

開發(fā) 前端
提供日常開發(fā)中的一些js處理數(shù)據(jù)的方法,包括對(duì)數(shù)據(jù)的過濾,以及對(duì)數(shù)據(jù)的驗(yàn)證等。也希望大家能留下你好用的方法~~

 [[411317]]

本文轉(zhuǎn)載自微信公眾號(hào)「網(wǎng)羅開發(fā)」,作者誰在花里胡哨。轉(zhuǎn)載本文請(qǐng)聯(lián)系網(wǎng)羅開發(fā)公眾號(hào)。

提供日常開發(fā)中的一些js處理數(shù)據(jù)的方法,包括對(duì)數(shù)據(jù)的過濾,以及對(duì)數(shù)據(jù)的驗(yàn)證等。也希望大家能留下你好用的方法~~

  • 數(shù)據(jù)過濾
    • 手機(jī)號(hào)碼隱藏中間4位
    • 保留兩位小數(shù)
    • 每三位逗號(hào)隔開,后面補(bǔ)兩位小數(shù),多用于金額數(shù)字
    • 銀行尾號(hào)四位數(shù)
    • 數(shù)字金額轉(zhuǎn)換為大寫人民幣漢字的方法
    • 獲取Url攜帶的地址參數(shù)
    • 金額以元和萬元為單位
    • 隱藏證件號(hào)
    • 用戶姓名脫敏
    • 賬號(hào)4位一空格
    • 字符全局替換
  • 數(shù)據(jù)驗(yàn)證
    • 手機(jī)號(hào)驗(yàn)證
    • 姓名校驗(yàn)
    • 密碼必須為8-18位數(shù),且包含大小寫字母和特殊符號(hào)
    • 身份證號(hào)完整校驗(yàn)
    • 只能輸入數(shù)字和字母
    • 校驗(yàn)特殊字符

數(shù)據(jù)過濾

手機(jī)號(hào)碼隱藏中間4位

  1. //手機(jī)號(hào)碼隱藏中間4位 
  2. phoneHideMiddle(val) { 
  3.   if (val) { 
  4.     return `${val.substring(0, 3)}****${val.substring(val.length - 4)}` 
  5.   } 
  6.   else { 
  7.     return ""
  8.   } 

保留兩位小數(shù)

  1. //保留兩位小數(shù) 
  2. keepTwoNum(val) { 
  3.   val = Number(val); 
  4.   return val.toFixed(2); 
  5. }, 

每三位逗號(hào)隔開,后面補(bǔ)兩位小數(shù),多用于金額數(shù)字

  1. //每三位逗號(hào)隔開,后面補(bǔ)兩位小數(shù),多用于金額數(shù)字 
  2. floatThree(value) { 
  3.   // console.log(value) 
  4.   value = "" + value; 
  5.   if (!value) return '0.00'
  6.  
  7.   // var intPart = Number(value).toFixed(0); //獲取整數(shù)部分 
  8.   var intPart = parseInt(Number(value));//獲取整數(shù)部分 
  9.   // console.log('intPart',intPart) 
  10.   var intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,'); //將整數(shù)部分逢三一斷 
  11.   // console.log('intPartFormat',intPartFormat) 
  12.  
  13.   var floatPart = ".00"; //預(yù)定義小數(shù)部分 
  14.   var value2Array = value.split("."); 
  15.  
  16.   //=2表示數(shù)據(jù)有小數(shù)位 
  17.   if (value2Array.length == 2) { 
  18.     floatPart = value2Array[1].toString(); //拿到小數(shù)部分 
  19.     // console.log('floatPart',floatPart) 
  20.     if (floatPart.length == 1) { //補(bǔ)0,實(shí)際上用不著 
  21.       return intPartFormat + "." + floatPart + '0'
  22.     } else { 
  23.       return intPartFormat + "." + floatPart; 
  24.     } 
  25.  
  26.   } else { 
  27.     return intPartFormat + floatPart; 
  28.   } 
  29. }, 

銀行尾號(hào)四位數(shù)

  1. //銀行尾號(hào)四位數(shù) 
  2. bankCardNumLastFour(val) { 
  3.   // val = Number(val); 
  4.   if (val) { 
  5.     return val.substring(val.length - 4); 
  6.   } 
  7. }, 

數(shù)字金額轉(zhuǎn)換為大寫人民幣漢字的方法

  1. //數(shù)字金額轉(zhuǎn)換為大寫人民幣漢字的方法 
  2. convertCurrency(money) { 
  3.   //漢字的數(shù)字 
  4.   var cnNums = new Array('零''壹''貳''叁''肆''伍''陸''柒''捌''玖'); 
  5.   //基本單位 
  6.   var cnIntRadice = new Array('''拾''佰''仟'); 
  7.   //對(duì)應(yīng)整數(shù)部分?jǐn)U展單位 
  8.   var cnIntUnits = new Array('''萬''億''兆'); 
  9.   //對(duì)應(yīng)小數(shù)部分單位 
  10.   var cnDecUnits = new Array('角''分''毫''厘'); 
  11.   //整數(shù)金額時(shí)后面跟的字符 
  12.   var cnInteger = '整'
  13.   //整型完以后的單位 
  14.   var cnIntLast = '元'
  15.   //最大處理的數(shù)字 
  16.   var maxNum = 999999999999999.9999; 
  17.   //金額整數(shù)部分 
  18.   var integerNum; 
  19.   //金額小數(shù)部分 
  20.   var decimalNum; 
  21.   //輸出的中文金額字符串 
  22.   var chineseStr = ''
  23.   //分離金額后用的數(shù)組,預(yù)定義 
  24.   var parts; 
  25.   if (money == '') { return ''; } 
  26.   money = parseFloat(money); 
  27.   if (money >= maxNum) { 
  28.     //超出最大處理數(shù)字 
  29.     return ''
  30.   } 
  31.   if (money == 0) { 
  32.     chineseStr = cnNums[0] + cnIntLast + cnInteger; 
  33.     return chineseStr; 
  34.   } 
  35.   //轉(zhuǎn)換為字符串 
  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.   //獲取整型部分轉(zhuǎn)換 
  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.   //小數(shù)部分 
  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攜帶的地址參數(shù)

  1. //獲取Url攜帶的地址參數(shù) 
  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. }, 

隱藏證件號(hào)

  1. //隱藏證件號(hào) 
  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. }, 

賬號(hào)4位一空格

  1. //賬號(hào)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" '

數(shù)據(jù)驗(yàn)證

手機(jī)號(hào)驗(yàn)證

  1. // 手機(jī)號(hào)驗(yàn)證 
  2. isvalidPhone(str) { 
  3.   const reg = /^1\d{10}$/ 
  4.   return reg.test(str) 
  5. }, 

姓名校驗(yàn)

  1. //姓名校驗(yàn) 
  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位數(shù),且包含大小寫字母和特殊符號(hào)

  1. //密碼必須為8-18位數(shù),且包含大小寫字母和特殊符號(hào) 
  2. /^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[!~@#$%^&*,\.])[0-9a-zA-Z!~@#$%^&*,\\.]{8,18}$/ 

身份證號(hào)完整校驗(yàn)

  1. //   * 身份證號(hào)完整校驗(yàn) 
  2. // * ***/ 
  3. isvalidateIdnumber(value) { 
  4.   if (value.length == 18) { 
  5.     var Errors = new Array( 
  6.       "驗(yàn)證通過!"
  7.       "身份證號(hào)碼位數(shù)不對(duì)!"
  8.       "身份證號(hào)碼出生日期超出范圍或含有非法字符!"
  9.       "身份證號(hào)碼校驗(yàn)錯(cuò)誤!"
  10.       "身份證地區(qū)非法!" 
  11.     ); 
  12.     var area = { 
  13.       11: "北京"
  14.       12: "天津"
  15.       13: "河北"
  16.       14: "山西"
  17.       15: "內(nèi)蒙古"
  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: "臺(tái)灣"
  45.       81: "香港"
  46.       82: "澳門"
  47.       91: "國外" 
  48.     }; 
  49.     //身份證號(hào)碼  idcard 
  50.     var Y; //為身份證號(hào)碼所有數(shù)字經(jīng)過特定算法以后對(duì)11取余所得到的數(shù)值 
  51.     var JYM; //固定數(shù)值 校驗(yàn)碼的計(jì)算中會(huì)用到 
  52.     var S; //身份證號(hào)碼所有數(shù)字經(jīng)過特定算法以后所得到的值 
  53.     var M; //校驗(yàn)位數(shù)值 
  54.     var idcard_array = value.split(""); 
  55.     var ereg; 
  56.     //console.log(idcard_array); 
  57.     //地區(qū)檢驗(yàn) 
  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.       //閏年出生日期的合法性正則表達(dá)式 
  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.       //平年出生日期的合法性正則表達(dá)式 
  71.     } 
  72.     if (ereg.test(value)) { //測試出生日期的合法性 
  73.       //計(jì)算校驗(yàn)位 
  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); //判斷校驗(yàn)位 身份證最后一位為校驗(yàn)位 如果身份證號(hào)碼正確 則最后一位會(huì)與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("身份證號(hào)碼長度不對(duì)"); 
  100.     return false
  101.   } 
  102. }, 

只能輸入數(shù)字和字母

  1. //只能輸入數(shù)字和字母 
  2. isvalidateLetterAndNum(str) { 
  3.   const reg = /^[0-9a-zA-Z]+$/; 
  4.   console.log(reg.test(str)); 
  5.   return reg.test(str) 
  6. }, 

校驗(yàn)特殊字符

  1. // 校驗(yàn)特殊字符 
  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.   } 

 

責(zé)任編輯:武曉燕 來源: 網(wǎng)羅開發(fā)
相關(guān)推薦

2018-09-27 15:25:08

正則表達(dá)式前端

2009-06-24 11:24:23

JavaScript驗(yàn)正則表達(dá)式

2020-09-04 09:16:04

Python正則表達(dá)式虛擬機(jī)

2024-09-14 09:18:14

Python正則表達(dá)式

2019-04-30 11:15:51

正則表達(dá)式JS前端

2023-09-04 15:52:07

2011-11-23 11:04:41

BGPAS_PATH正則表達(dá)式

2010-03-25 18:25:36

Python正則表達(dá)式

2021-01-27 11:34:19

Python正則表達(dá)式字符串

2009-02-18 09:48:20

正則表達(dá)式Java教程

2009-09-16 18:19:34

正則表達(dá)式組

2011-06-02 12:34:16

正則表達(dá)式

2017-05-12 10:47:45

Linux正則表達(dá)式程序基礎(chǔ)

2019-07-17 15:45:47

正則表達(dá)式字符串前端

2022-03-28 06:19:14

正則表達(dá)式開發(fā)

2016-11-10 16:21:22

Java 正則表達(dá)式

2022-01-04 11:35:03

Linux Shel正則表達(dá)式Linux

2023-09-13 08:12:45

2009-09-16 17:15:57

正則表達(dá)式引擎

2010-03-03 10:51:32

正則表達(dá)式
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)