正则表达式中()和[]的区别

本片主要讲在正则表达式中使用()[]的区别,关于()的捕获不做深入探讨

一、概念

  1. ()代表分组,()匹配到的内容会分为一组,内容需要和()整体配才会匹配成功
  2. []代表字符集,内容匹配到[]里的任意一条规则,即为匹配成功

二、Demo

<script>
   let str = "abc"
   console.log(/(ad)/.test(str))//false/(ad)/正则表示ad作为一个整体去匹配字符串
   console.log(/[ad]/.test(str))//true /[ad]/表示ad作符字符集去匹配字符串(匹配到a匹配到d都算匹配成功)
</script>
<script>
    let strA = "abc"
    console.log(/(a|d)/.test(strA))//true `()`分组符号配合`|`选择符号配合可以达到和`[]`类似的效果 --`(a|d)`中的`|`左边是一个整体,右边是一个整体,如果字符串匹配到`|`左边或者右边任意一个整体即为匹配成功
    console.log(/[ad]/.test(strA))//true
</script>
<script>
let strB = "abc"
console.log(/(.)/.test(strB))//true
console.log(/[.]/.test(strB))//false
/**
 * 正则里有一些字符是元字符,这些元字符有着特殊的含义,例如`.`和`?`
 * 在()里这些元字符含义保持不变,但是在[]里这些元字符就是普通的字符没有特殊含义
 */
</script>

三、案例

  1. 获取url获取参数

    <script>
        function getParamByUrl(url,name) {
            let reg = new RegExp(`[?&]${name}=[a-zA-Z0-9]*&?`)
            let match = url.match(reg);
            if (match){
               return match[0].split("=")[1].replaceAll("&","")
            }else{
                return null
            }
        }
        let url = "https://m.weibo.cn/u/5902368392?topnav=1&wvr=6&is_all=1&jumpfrom=weibocom"
        console.log(getParamByUrl(url,"wvr"))//6
    </script>
    

四、更多

关于正则更多可以参考正则表达式对比(Java和JavaScript)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值