前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >正则与字符串操作

正则与字符串操作

作者头像
岳泽以
发布2022-10-26 17:28:56
2810
发布2022-10-26 17:28:56
举报
文章被收录于专栏:岳泽以博客岳泽以博客

基本语法

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

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

代码语言:javascript
复制
        var str = 'hello'
        var pattern = /o/
        //输出的结果['o', index: 4, input: 'hello', groups: undefined]
        console.log(pattern.exec(str));

分组

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

代码语言:javascript
复制
        var str = "<div>我是{{name}}</div>"
        var pattern = /{{([a-zA-Z]+)}}/
        var result = pattern.exec(str)
        console.log(result);

字符串的replace函数

replace()函数用于在字符串中用一些字符替换另外一些字符。

代码语言:javascript
复制
var result='123456'.replace('123','abc') //得到result的值为字符串’abc456‘

示例:

代码语言:javascript
复制
        var str = '<div>我是{{name}}</div>'
        var pattern = /{{([a-zA-Z]+)}}/

        var patternResult = pattern.exec(str)
        console.log(patternResult);
        str = str.replace(patternResult[0], patternResult[1])
        console.log(str);
image-20220924165030684
image-20220924165030684

多次replace

代码语言:javascript
复制
        var str = '<div>{{name}}今年{{age}}岁</div>'
        var pattern = /{{\s*([a-zA-Z]+)\s*}}/
        //第一次匹配
        var res1 = pattern.exec(str)
        str = str.replace(res1[0], res1[1])
        console.log(str);//<div>name今年{{age}}岁</div>

        //第二次匹配
        var res2 = pattern.exec(str)
        str = str.replace(res2[0], res2[1]);
        console.log(str);//<div>name今年age岁</div>

        //第三次匹配
        var res3 = pattern.exec(str)
        console.log(res3);//null

使用while循环replace

代码语言:javascript
复制
        var str = '<div>{{name}}今年{{age}}岁</div>'
        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);//输出<div>name今年age岁</div>

replace替换为真值

代码语言:javascript
复制
        var data = { name: '张三', age: 20 }
        var str = '<div>{{name}}今年{{age}}岁</div>'
        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);//输出<div>张三今年20岁</div>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022 年 09 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本语法
  • 分组
  • 字符串的replace函数
    • 多次replace
      • 使用while循环replace
        • replace替换为真值
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档