常用正则验证总结(持续更新)

1. element输入框常用正则校验

// 校验金额,只能输入数字跟一位小数点
invoiceAmount: [
    { required: true, message: "请输入发票金额", trigger: "blur" },
    { pattern: /^[0-9]+(\.[0-9]+)?$/, message: '请输入正确的发票金额', trigger: 'blur'}
],

1. 常用的正则表达式

const checkStr = function(str, type) { // 常用正则验证,注意type大小写
 switch (type) {
   case 'sum': // 金额
     return /[0-9.]$/.test(str)
   case 'phone': // 手机号码
     return /^1[3|4|5|6|7|8|9][0-9]{9}$/.test(str)
   case 'tel': // 座机
     return /^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/.test(str)
   case 'card': // 身份证
     return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(str)
   case 'pwd': // 密码以字母开头,长度在6~18之间,只能包含字母、数字和下划线
     return /^[a-zA-Z]\w{5,17}$/.test(str)
   case 'postal': // 邮政编码
     return /[1-9]\d{5}(?!\d)/.test(str)
   case 'QQ': // QQ号
     return /^[1-9][0-9]{4,9}$/.test(str)
   case 'email': // 邮箱
     return /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(str)
   case 'money': // 金额(小数点2位)
     return /^\d*(?:\.\d{0,2})?$/.test(str)
   case 'URL': // 网址
     return /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/.test(str)
   case 'IP': // IP
     return /((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))/.test(str)
   case 'date': // 日期时间
     return /^(\d{4})\-(\d{2})\-(\d{2}) (\d{2})(?:\:\d{2}|:(\d{2}):(\d{2}))$/.test(str) ||
       /^(\d{4})\-(\d{2})\-(\d{2})$/.test(str)
   case 'number': // 数字
     return /^[0-9]$/.test(str)
   case 'english': // 英文
     return /^[a-zA-Z]+$/.test(str)
   case 'chinese': // 中文
     return /^[\u4E00-\u9FA5]+$/.test(str)
   case 'lower': // 小写
     return /^[a-z]+$/.test(str)
   case 'upper': // 大写
     return /^[A-Z]+$/.test(str)
   case 'HTML': // HTML标记
     return /<("[^"]*"|'[^']*'|[^'">])*>/.test(str)
   default:
     return true
  }
}

2. 去除字符串空格正则

// 去除空格, type: 1-所有空格 2-前后空格 3-前空格 4-后空格
const trim = function(str, type) {
 type = type || 1
 switch (type) {
   case 1:
     return str.replace(/\s+/g, '')
   case 2:
     return str.replace(/(^\s*)|(\s*$)/g, '')
   case 3:
     return str.replace(/(^\s*)/g, '')
   case 4:
     return str.replace(/(\s*$)/g, '')
   default:
     return str
  }
}

3. 阿拉伯数字转中文大写数字正则

// 将阿拉伯数字翻译成中文的大写数字
const numberToChinese = function(num) {
 let AA = new Array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十')
 let BB = new Array('', '十', '百', '仟', '萬', '億', '点', '')
 let a = ('' + num).replace(/(^0*)/g, '').split('.')
 let k = 0
 let re = ''
 for (let i = a[0].length - 1; i >= 0; i--) {
   switch (k) {
     case 0:
       re = BB[7] + re
       break
     case 4:
       if (!new RegExp('0{4}//d{' + (a[0].length - i - 1) + '}$').test(a[0])) {
         re = BB[4] + re
      }
       break
     case 8:
       re = BB[5] + re
       BB[7] = BB[5]
       k = 0
       break
  }
   if (k % 4 === 2 && a[0].charAt(i + 2) !== 0 && a[0].charAt(i + 1) === 0) {
     re = AA[0] + re
  }
   if (a[0].charAt(i) !== 0) {
     re = AA[a[0].charAt(i)] + BB[k % 4] + re
  }
   k++
}
 if (a.length > 1) { // 加上小数部分(如果有小数部分)
   re += BB[6]
   for (let i = 0; i < a[1].length; i++) {
     re += AA[a[1].charAt(i)]
  }
}
 if (re === '一十') {
   re = '十'
}
 if (re.match(/^一/) && re.length === 3) {
   re = re.replace('一', '')
}
 return re
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值