常用正则表达式,持续更新。。。

125 阅读1分钟

将中间数字变为*

str.replace(/(\d{3})\d*(\d{2})/, '$1****$2')

在数字前插入$符号,兼容正负号

String(str).replace(/(-?)(\d*)/, '$1$$$2')
// -3.45 --> -$3.45
// 3.45 --> $3.45

获取img图片链接的正则表达式

/<img [^>]*src=['"]([^'"]+)[^>]*>/gi

5-15位数字和字母的混合,且必须有一位数字和字母

/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{5,15}$/

5-15位数字和字母的混合,允许纯数字或字母组合

/^[0-9A-Za-z]{5,15}$/

将大括号之间的内容(包括大括号)换成 * 号

str.replace(/(\{).*(\})/, '****')

将中间内容加密

/**
 * 将中间内容加密
 * @param {String} str 需要加密的字符串
 * @param {Number} repeat // *重复的次数
 * @param {Number} before // 前面显示的内容个数
 * @param {Number} after // 后面显示的内容个数
 * @param {Boolean} isForced // 是否字数小于显示的个数依然执行加密处理
 * @returns {String} 加密后的字符串
 */
const encryptMiddleStr = (str, repeat = 4, before = 3, after = 3, isForced = true) => {
  if (!str) return ''

  const strL = str.length
  if (strL <= before + after) {
    const num = isForced ? Math.ceil(strL / 2) - 1 : 3
    before = strL === 2 ? 1 : num
    after = num
  }
  return str.replace(new RegExp(`(.{${before}}).*(.{${after}})`), (all, $1, $2) => {
    return $1 + '*'.repeat(repeat) + $2
  })
}

验证电子邮箱

isEmail = (value) => /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value)