正则表达式(second Day)

1, 千分分割

  // 千分分割
  // 先进行最后一个三位数的分割
  var string = '12345678'
  var newArr = string.replace(/(?=\d{3}$)/g, ',')
  console.log(newArr); // 12345,678

  // 在每三位分割
  var str = string.replace(/(?=(\d{3})+$)/g, ',')
  console.log(str); // 12,345,678

  // 匹配非开头的情况
  var arr = '123456789'
  var newStr = arr.replace(/(?!^)(?=(\d{3})+$)/g, ',')
  console.log(newStr); // 123,456,789

  // 匹配非数字开头非数字结尾
  var num = '12345678 123456789'
  var newNum = num.replace(/(?!\b)(?=(\d{3})+\b)/g, ',')
  console.log(newNum); // 12,345,678 123,456,789

2, 匹配年-月-日

   var arr = '2022-12-28'
   var newArr = arr.replace(/(\d{4})-(\d{2})-(\d{2})/g, "$3/$2/$1")
   console.log(newArr);

3, 多模式匹配
在这里插入图片描述
其中 / 和 . 需要转义。虽然匹配了要求的情况,但也匹配 “2016-06/12” 这样的数据。

假设我们想要求分割符前后一致怎么办?此时需要使用反向引用:
在这里插入图片描述
注意里面的 \1,表示的引用之前的那个分组 (-|/|.)。不管它匹配到什么(比如 -),\1 都匹配那个同
样的具体某个字符。
我们知道了 \1 的含义后,那么 \2 和 \3 的概念也就理解了,即分别指代第二个和第三个分组。

4, 正则匹配手机号中间4位加*号
在这里插入图片描述

5,匹配位置加-

在这里插入图片描述
6, 去掉字符串前后空格(函数trim用法)

       var arr = ' footer '
        var str = arr.replace(/^\s+|\s+$/g, '')
        console.log(arr); //  footer 
        console.log(str); // footer

7, 匹配html标签(成对标签)

    // 匹配一个开标签,可以使用正则 <[^>]+>,
        // 匹配一个闭标签,可以使用 <\/[^>]+>,

    //    var regex = /<([^>]+)>[\d\D]*<(\/[^>]+)>/
       var regex = /<([^>]+)>[\d\D]*<\/\1>/

       var str1 =  '<title>regular expression</title>'
       var str2 =  '<p>laoyao bye bye</p>'
       var str3 = "<title>wrong!</p>";
       var Arr = console.log(regex.test(str1)); // true
       var Arr = console.log(regex.test(str3)); // false
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值