正则表达式验证集合---速查(持续更新)

1.国内手机号 (11位)

普通验证     

 /^1[3-9]\d{9}$/

严格验证(前三位匹配)     

 /^1((3[0-9])|(4[5,7,9])|(5[0-3,5-9])|(7[0,3,5-8])|(8[0-9])|66|98|99)\d{8}$/    

 * 移动:134(0-8)、135、136、137、138、139、147、150、151、152、157、158、159、

            178、182、183、184、187、188、198

 * 联通:130、131、132、145、155、156、175、176、185、186、166
 * 电信:133、149、153、173、177、180、181、189、199
 * 全球星:1349

 * 虚拟运营商:170

2.国内电话号码

3.身份证号码验证(15/18位)

十五位:xxxxxx yy mm dd xx x   

/^[1-9]\d{5}\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$/

十八位:xxxxxx yyyy mm dd xxx x 

/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/

合并

/^([1-9]\d{5}\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx])|([1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx])$/

4.邮箱验证

5.车牌验证(含新能源车牌)

普通汽车(只包括了普通车牌号,教练车,警等车牌号 。部分部队车,新能源不包括在内)

/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/

   * 车牌号格式:汉字 + A-Z + 5位(A-Z)或(0-9)  (车牌号不存在字母I和O防止和1、0混淆) 

   * 京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼军空海北沈兰济南广成使领

新能源车:

/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF])|([DF][A-HJ-NP-Z0-9][0-9]{4}))$/

   * 车牌号格式:省份简称(1位汉字)+发牌机关代号(1位字母)+序号(6位),总计8个字符,序号不能出现字母I和字母O
   * 通用规则:不区分大小写,第一位:省份简称(1位汉字),第二位:发牌机关代号(1位字母)
   * 序号位:
   * 小型车,第一位:只能用字母D或字母F,第二位:字母或者数字,后四位:必须使用数字
   * 大型车,前五位:必须使用数字,第六位:只能用字母D或字母F。

6.银行卡四位分割输出

let cardNum = '62024301052232452212313213'

let a = cardNum.replace(/\s/g,'').replace(/[^\d]/g,'').replace(/(\d{4})(?=\d)/g,'$1 ')

console.log(a)

保留最后四位,前面都替换为*

 

7、隐藏手机号码中间四位:

s.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"); 

8、隐藏邮箱:只显示@前面的首位和末位:

s.replaceAll("(\\w?)(\\w+)(\\w)(@\\w+\\.[a-z]+(\\.[a-z]+)?)", "$1****$3$4"))  

 

。。。

自定义修改时间戳格式

YYYY-MM-DD hh:mm:ss
function formatDateTime(timeStamp) { 
    var date = new Date(timeStamp * 1000);
    var y = date.getFullYear();    
    var m = date.getMonth() + 1;    
    m = m < 10 ? ('0' + m) : m;    
    var d = date.getDate();    
    d = d < 10 ? ('0' + d) : d;    
    var h = date.getHours();  
    h = h < 10 ? ('0' + h) : h;  
    var minute = date.getMinutes();  
    var second = date.getSeconds();  
    minute = minute < 10 ? ('0' + minute) : minute;    
    second = second < 10 ? ('0' + second) : second;   
    return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second;    
};  
console.log(formatDateTime(1495157126));

用正则来自定义时间格式(写一个公共方法,项目里用到可以引入)

export function formatDate (date, fmt) {
  if (/(y+)/.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
  }
  let o = {
    'M+': date.getMonth() + 1,
    'd+': date.getDate(),
    'h+': date.getHours(),
    'm+': date.getMinutes(),
    's+': date.getSeconds()
  }
  for (let k in o) {
    if (new RegExp(`(${k})`).test(fmt)) {
      let str = o[k] + ''
      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str))
    }
  }
  return fmt

  function padLeftZero (str) {
    return ('00' + str).substring(str.length)
  }
}

vue项目,使用

 
{{rating.rateTime | formatDate}}
import {formatDate} from '../../common/js/date'

filters: {
    formatDate (time) {
      let date = new Date(time)
      return formatDate(date, 'yyyy-MM-dd hh:mm')
    }
  }

 

你可能感兴趣的:(正则)