js正则积累

1. 取小数点后两位正则

const isTwoPointReg = (event) => {
  const reg = /^\d*(\.?\d{0,2})/g
  const data = String(event).match(reg)
  return data.length > 0 ? data[0] : null
}
const big=isTwoPointReg(2.369522) //返回值2.36

2. 手机号

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

3. 获取省市区

const regex =  /.+?(省|市|区)/g //获取省市区

4. 获取省市区对象方法

function getProvice(address){
  if(!address) return {provice:'',city:'',addressAll:address}
  // const regex =  /.+?(省|市|自治区|自治州|县|区)/g //获取省市
  let regex = null
  // 直辖市列表(无省级名称)
  const directCities = ['北京', '上海', '天津', '重庆']
  const isDirectCity = directCities.some(city => address.startsWith(city))
  if(isDirectCity) regex = /^(?<city>.+?(市|自治州))?(?<area>.+?(区|县))?/
  if(!isDirectCity) regex = /^(?<provice>.+?(省|自治区|直辖市))?(?<city>.+?(市|自治州))?(?<area>.+?(区|县|旗))?/
  const match = address.match(regex)
  if(!match) return {provice:'',city:'',addressAll:address}
  const { provice = '', city = '', area = '' } = match?.groups || {}
  const addressAll = address.slice([provice, city, area].join('').length)
  let obj = {
    provice,
    city,
    area,
    addressAll:addressAll??''
  }
  if(isDirectCity){
    // 直辖市:provice 和 city 相同
    obj['provice']=city
    return obj
  }else{
    return obj
  }
  
}

5. 20 字以内的中文、英文、数字以及下划线

const reg = /^[\u4e00-\u9fa5a-zA-z0-9_]{1,20}$/

**6. 匹配纯字母+ 或者 字母+下划线

const reg = /^([a-zA-Z]+|([a-zA-Z]+(_[a-zA-Z]+))*)$/
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值