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


    基本语法

    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
  • 相关阅读:
    Nginx正则表达式、location匹配、rewrite重写
    7.HTML中列表标签
    【无标题】
    C#自定义控件:提示未将对象引用设置到对象实例
    【单调栈】【概念讲解&&模板代码】
    基于JAVA社区智能化管理计算机毕业设计源码+数据库+lw文档+系统+部署
    后端工程师之路(8)-springboot
    java 企业工程管理系统软件源码 自主研发 工程行业适用
    4、MFC:菜单栏、工具栏与状态栏
    Qt5开发从入门到精通——第五篇一节( 文本编辑器 Easy Word 开发 V1.0 详解 )
  • 原文地址:https://blog.csdn.net/qq_46133833/article/details/126238164