正则表达式

正则表达式

最近刚学习了JS中使用正则表达式,记录下学习到的笔记

如何初始化正则表达式

let reg = new RegExp(‘\w{3}’,‘gi’) //g代表全局 i代表忽略大小写 一般用第二种方法

let reg2 = /\w{3}/gi
可以通过 console.log(reg.test(‘aaaa’)) 返回值的布尔值来判断是否符合正则

正则表达式中的部分字符以及含义

  • \d 匹配数字

  • \D 匹配非数字

  • \w 匹配数字,字母,下划线

  • \W 匹配除了数字字母下划线的其他字符

  • \s 匹配空格

  • \S 匹配非空格

  • . 匹配除了换行符以外的

  • ^ 表示以什么开头 ^bc 表示bc开头的

  • $ 表示以什么结尾 ^bc 表示b开头c结尾的

  • *表示前面一个字符出现零至多次

    如在 ab abc abccccccccccc中 ab* 可以全部匹配

  • +表示前面一个字符出现一至多次

    如在 ab abc abccccccccccc中 ab+ 可以匹配abc abcccccccc

  • ?表示前面字符出现零次或者一次

    如在 ab abc abccccccccccc中 ab+ 可以匹配ab abc

  • {n} 表示某字符出现n次

    如在 ab abc abccccccccccc中 c{1} 可以匹配abc

  • {n,}表示n到更多次

    如在 ab abc abccccccccccc中 c{1,} 可以匹配abc abccccccccccc

  • {n, m}表示某字符出现n到m次

    如在 ab abc abccccccccccc中 c{1,5} 可以匹配abc

  • [a-z] 表示匹配所有小写字母

  • [^a-z] 表示匹配所有非小写字母

  • \ 转义符

  • | 或 表示二选一

    如 boy bay 可以通过b[a|o]y取得

  • [\u4e00-\u9fa5] 匹配汉字

    如 要匹配中国 [\u4e00-\u9fa5] {2}

JS中中正则表达式的使用

  • RegExp对象的方法

    • test 匹配

      reg.test(‘aaaa’) 匹配aaa是否符合

    • exec 提取一个符合的

      reg.exec(‘aaaa’)

  • String对象的方法

    • match 一次提取所有符合的

    ​ 如

    let data = '今天星期3明天星期4后天星期5'
    let reg = /\d/g //加g才可以匹配全局
    console.log(data.match(reg))
    
    • split 切割数组

    如: 2015-2-12

    console.log(data.split(‘-’))

    【2015】,【2】,【12】

    • trim 只能去除数组的前后空格

    • replace

      let data = ’ 213 113 23123 21312321 412312312’

      let reg = /\s/g ///经常忘记加g 必须加g才能匹配全部 不然没有下效果 只能替换一个空格

      console.log(data.replace(reg, ‘’))

      还可以用split data.split(’ ‘).join(’')

    • search
      data.search(reg) 会返回匹配整个表达式所在的位置

正则的贪婪模式

在H5代码中匹配/<.+>/

在这里插入图片描述

会发现中间存在内容 但并没有停止而是继续往下搜索

而/<.+?>/可以开启非贪婪

在这里插入图片描述

对数据进行脱敏

'13111112222'.replace(/^(.{3})(.{4})(.{4})$/, '$1****$3');

推荐大家一个好的学习网站
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值