正则常用方法test,match,search,replace

1. test()方法
使用方法: Reg.test(str) 
找到返回true,否则false 找到第一个后就会停止向后找
let str = 'abcdefg'
let reg = /b/
console.log(Reg.test(str))   =>true
2. match()方法
str.match(Reg) 
不匹配返回null ,匹配到就返回对应的数组
let str = 'abcdadfgh'
let reg = /a/g
let arr = str.match(reg) => ["a", "a"]
3. search()方法
str.search(reg) 
匹配成功返回对应得位置,不成功返回 -1
let str = 'abcdadfgh'
let reg = /d/
str.search(reg) => //3(下标从0开始)
4. replace()方法
str.replace(reg,newstr) 
replace函数一次只能替换一个目标字符串
newstr需要替换成的东西 返回替换完成后的字符串
替换单个目标字符串
let str = 'abcd刘小妹adfgh'
let reg = /刘小妹/
str.replace(reg,'西红柿') => //  "abcd西红柿adfgh"
替换多个目标字符串
let str = 'abcd刘小妹adfgh小妹'
let reg = /刘小妹/
str.replace(reg,'西红柿') => //  "abcd西红柿adfgh小妹"
如何替换多个目标字符串?
let str = 'abcd刘小妹adfgh刘小妹'
let reg = /刘小妹/
str.replace(new RegExp(reg, 'g'),'西红柿')  // 简写str.replace(/reg/g,'西红柿')
利用正则常用方法实现物流时间轴的数据处理(点击电话号码即可拨打)
let data = [{
 "context": "[邢台市]快件在【邢台高新集散点】已装车,准备发往 【邢台市沙河市宋璟营业点】",
  "time": "2020-03-02 13:17:55",
  "ftime": "2020-03-02 13:17:55"
}, {
  "context": "[邢台市]正在派送途中,请您准备签收(派件人:邓朋飞,电话:18631965961)",
  "time": "2020-03-02 13:59:33",
  "ftime": "2020-03-02 13:59:33"
}, {
  "context": "[邢台市]快件交给邓朋飞,正在派送途中(联系电话:18631965961,顺丰已开启“安全呼叫”保护您的电话隐私,请放心接听!)",
  "time": "2020-03-02 14:04:19",
  "ftime": "2020-03-02 14:04:19"
}, {
  "context": "[邢台市]您的快件已签收,如有疑问请电联小哥【邓朋飞,电话:18631965961】。疫情期间顺丰每日对网点消毒、小哥每日测温、配戴口罩,感谢您使用顺丰,期待再次为您服务。(主单总件数:1件)",
  "time": "2020-03-02 14:37:20",
  "ftime": "2020-03-02 14:37:20"
}]
const telReg = /1[3-9]\d{9}|[0][1-9]{2,3}-[0-9]{5,10}|95\d{3}/g

data.forEach(item => {
  if (telReg.test(item.context)) {
 	let tels = [...new Set(item.context.match(telReg))]
    tels.forEach(item1 => {
      item.context = item.context.replace(new RegExp(item1, 'g'),, `<a href="tel:${item1}">${item1}</ a>`)
    })
  }
})
console.log(data)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值