14.JS-正则表达式的反向引用

选择字符:|

            com|cn|edu   ---  选择其中一个(含有其中一个就能匹配成功)


子表达式:用()包围的就是子表达式

            str = "((/d)(/w))"

            第一个子表达式:((\d)(\w))

            第二个子表达式:(\d)

            第三个子表达式:(\w)

            子表达式:以第一个出现的 ( 为第一个表达式

        
        捕获:将匹配到的子表达式保存在RegExp对象中

            RegExp.$1:保存第一个子表达式

            RegExp.$2:保存第二个子表达式

            RegExp.$3:保存第三个子表达式
            ...


        反向引用:调用捕获到的值

            \1:指向RegExp.$1

            \2:指向RegExp.$2

            \n:指向RegExp.$n
    
例子:   

    
匹配连续相同的三个数字
        

var str = 'ooo111ooo222ooo333ooo123';

var reg = /(\d)\1\1/g;

var result = str.match(reg);

console.log(result);//[111,222,333]


匹配类型为abab的数字
        

var str = 'ooo1212ooo2323ooo3434ooo1234';

var reg = /(\d)(\d)\1\2/g;// \d匹配数字,\1对应的是第一个表达式(\d),\2对应的是第二个表达式(\d),g是全局匹配

var result = str.match(reg);

console.log(result);


匹配标签内的内容
      

var str = 'ooo<div>hello world!</div>234';

var reg = /<(\w+).*<\/\1>/g;

var result = str.match(reg);

console.log(result);

分析
 \w:  查找字母、数字、下划线
 \w+:  匹配查找至少一个\w的字符串
.:  查找单个字符除了换行符和行结束符
.*:  匹配查找至少零个.的字符串
\/:  因为/为特殊字符,所以需要用转义符\
\1:  反向引用(\w+)
 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值