正则备忘录~

212 阅读1分钟

直接cv看效果

// 匹配驼峰命名
console.log('allowClear'.match(/([a-z]+)([A-Za-z]+)/))

let str1 = '1.负责界面设计。2.参与方案。3.根据影响力。4.配合质量。5.完成设计。'
console.log(str1.match(/\d.[^\d]*/g));

// 匹配符号内的内容
let str2 = '<ab>-<cd>-<ef>'
console.log(str2.match(/(?<=<)([^<>-]+)(?=>)/g));

// 匹配下划线最后一位
let str3 = 'PRICING_OCPM'
console.log(str3.match(/([^_]+)$/));

// 纯数字输入  或直接 v.replace(/[^\d]/g, "") 即可
// v = 值  decimalPoint = 最多几位小数点
function numInputMap(v, decimalPoint = 2) {
  v += ''
  // 0开头不能出现多个
  v = v.replace(/^0{2,}/g, '0')
  // 把非数字的都替换掉,除了数字和.
  v = v.replace(/[^\d.]/g, '')
  // 保证只有出现一个.而没有多个.
  v = v.replace(/\.{2,}/g, '.')
  // 必须保证第一个为数字而不是.
  v = v.replace(/^\./g, '')
  // 保证.只出现一次,而不能出现两次以上
  v = v.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
  // 可输入的小数点位数 动态配置 默认2位
  v = v.replace(
    new RegExp(`^(-)*(\\d+)\\.(\\d{${decimalPoint}}).*$`),
    '$1$2.$3'
  )
  v = v.replace(/^\d*\.$/g, v.match(/(\d*)/g)[0])
  // 获取除了0 后面的所有值
  v = /^0\d/g.test(v) ? v.match(/(?<=^0)(\d.*)/g)[0] : v
  return +v
}
console.log(numInputMap(13132546.5355));
console.log(numInputMap('0001.33423'));
console.log(numInputMap('abdfgds'));

// 以字符串48长度分割为一组
let str4 = ''.padEnd(336,'0')
console.log(str4.match(/\d{48}/g))

// 转真数组(字符串格式)
let str5 = "[INVENTORY_UNION_SLOT,a,b,c,t,d,h,h]"
console.log(str5.replace(/[\[\]]/g, '').split(','))

// 取出img标签
let str6 = '12adasd3456<<<img src=1234>>>>123414124'
console.log(img.match(/(.*)(<.[^>]*>)/))

// 匹配最后一个/后的内容
let str7 = "https://w.wallhaven.cc/full/28/a/wallhaven-286zdy.png"
console.log(str7.match(/(?<=\/)[^\/]*\.[^\/]*$/g));

End~