• 正则表达式与字符串操作


    基本语法

    exec()函数用于检索字符串中的正则表达式的匹配

    如果字符串中有匹配的值,则返回该匹配值,否则返回null

    RegExpobject.exec (string)
    
    • 1

    示例代码如下:

    
    
    
        
        
        
        Document
    
    
        
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    这个时候我们就可以得到以下结果:
    在这里插入图片描述

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-epKMCLkR-1659971129432)(https://secure2.wostatic.cn/static/oYzzs2tX3N1m2Dm3AdWRT7/image.png)]

    我们可以看到我们在上面的正则表达式中成功的匹配到了字母o,它所在的索引是4

    当我们在正则表达式中匹配一个不存在的值它会返回null,让我们尝试一下:

    
    
    
        
        
        
        Document
    
    
        
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    运行结果如下:

    在这里插入图片描述

    分组

    正则表达式中()包起来的内容表示一个分组,可以通过分组来提取自己想要的内容,示例代码如下:

    
    
        
            
            
            
            Document
        
        
            
        
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    运行结果如下:在这里插入图片描述

    3.字符串的replace函数

    replace()函数用于在字符串中用一些字符替换另一些字符,语法格式如下:

    var result = '123456'.replace ('123', 'abc')//得到的result 的值为字符串'abc456'
    
    • 1

    示例代码如下:

    
    
        
            
            
            
            Document
        
        
            
        
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    运行结果如下:在这里插入图片描述

    4. 多次replace

    var str = '
    { {name}}今年{{ age }}岁了
    ' var pattern = /{ {ls* ( [a-zA-z]+)1s*} }/ var patternResult = pattern.exec (str) str = str.replace(patternResult[0],patternResult[1]) console.log(str)//输出
    name今年{{ age }}岁了
    patternResult = pattern.exec (str) str = str.replace(patternResult[0],patternResult[1]) console.log (str)//输出
    name今年age岁了
    patternResult = pattern.exec (str) console.log (patternResult)//输出null
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    5.使用while循环replace

    上面的案例执行的次数还是不够多,如果我们要执行20次就要写20次replace,在下面的案例中我们可以把replace与循环相结合:

    var str = '
    { {name}}今年{ { age }}岁了
    ' var pattern = / { {\S* ( [a-zA-z]+)\S*}}/ var patternResult = null while(patternResult = pattern.exec (str)) { str = str.replace (patternResult[0],patternResult[1]) } console.log(str) //输出
    name今年age岁了
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    6.replace替换为真值

    var data = { name: '张三·,age: 20 }
    var str 述'
    { {name}}今年{{ age }}岁了
    ' var pattern = /{ { \s* ( [a-zA-z]+)\s*} }/ var patternResult = null while ( (patternResult = pattern.exec (str))){ str = str.replace (patternResult[0],data[patternResult[1]]) } console.log (str)
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    CSS 基本选择器
    策略模式-实战
    Oj错题。。
    DataX 数据迁移
    开发高性能知识付费平台:关键技术策略
    Spring中@Value的三种使用方式
    2023-10-04:用go语言,现有一棵无向、无根的树,树中有 n 个节点,按从 0 到 n - 1 编号 给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges , 其中 edge
    [虚幻引擎插件介绍] DTGlobalEvent 蓝图全局事件, Actor, UMG 相互回调,自由回调通知事件函数,支持自定义参数。
    1认识一下防火墙
    视频帧数,普清,高清,超清,分辨率
  • 原文地址:https://blog.csdn.net/qq_46133833/article/details/126238164