基本语法

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

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

RegExpobject.exec (string)

示例代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>var str = 'hello'var pattern = /o/var result = pattern.exec(str)console.log(result)</script>
</body>
</html>

这个时候我们就可以得到以下结果:

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

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

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

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>var str = 'hello'var pattern = /x/var result = pattern.exec(str)console.log(result)</script>
</body>
</html>

运行结果如下:

分组

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

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><script>var str = '<div>我是{{name}}</div>'var pattern = /{{([a-zA-Z]+)}}/var result = pattern.exec(str)console.log(result)</script></body>
</html>

运行结果如下:

3.字符串的replace函数

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

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

示例代码如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><script>var str = '<div>我是{{name}}</div>'var pattern = /{{([a-zA-Z]+)}}/var patternResult = pattern.exec(str)str = str.replace(patternResult[0], patternResult[1])console.log(str)</script></body>
</html>

运行结果如下:

4. 多次replace

var str = '<div>{ {name}}今年{{ age }}岁了</div>'
var pattern = /{ {ls* ( [a-zA-z]+)1s*} }/var patternResult = pattern.exec (str)
str = str.replace(patternResult[0],patternResult[1])
console.log(str)//输出<div>name今年{{ age }}岁了</div>patternResult = pattern.exec (str)
str = str.replace(patternResult[0],patternResult[1])
console.log (str)//输出<div>name今年age岁了</div>patternResult = pattern.exec (str)
console.log (patternResult)//输出null

5.使用while循环replace

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

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>

6.replace替换为真值

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)

正则表达式与字符串操作相关推荐

  1. 字符串操作-正则表达式

    正则表达式 编辑 正则表达式,又称 正规表示法. 常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符 ...

  2. 正则表达式查找字符串_如何简单理解正则表达式?只需1分钟就可以看到她优美的舞姿...

    Hi,大家好,本章节开始将会从零开始和大家用图文的方式,让你从零基础学会正则表达式!有兴趣的小伙伴可以持续关注我,或者在专栏中进行查看自我学习,愿与君携手前行! 本文将要说到的正则表达式?可能初学的你 ...

  3. PHP学习:字符串操作和正则表达式

    主要内容: 字符串格式化: 用字符串函数连接和分隔字符串: 字符串比较: 使用字符串函数匹配和替换子字符串: 使用正则表达式: 字符串格式化 1,去空格:trim(),ltrim(),rtrim() ...

  4. js函数语法:ASCII 码的相互转换,字符串操作,数学计算

    ASCII 码的相互转换 for (let i = 'a'.charCodeAt(); i <= 'z'.charCodeAt(); i++) {a.push(String.fromCharCo ...

  5. linux shell 字符串操作(长度,查找,替换)详解

    引用 参考  http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html 在做shell批处理程序时候,经常会涉及到字符串相关操作.有 ...

  6. shell之字符串操作

    在使用脚本的时候,字符串是我们经常用的对象,还经常会用到查找,替换,删减,比较等等操作.本人稍作整理,希望能对新人有所帮助,本人也是新人,(*^__^*) 嘻嘻-- 1.判断字符串的属性 一般用到的也 ...

  7. JavaScript中的字符串操作(转)

    http://www.cnblogs.com/xuebin/articles/1296837.html 最近编一个javascript的翻译程序,发现无法正确比较两个字符串的相等,上网查了查,发现这篇 ...

  8. 【备忘】linux shell 字符串操作(长度,查找,替换,匹配)详解

    为什么80%的码农都做不了架构师?>>>    在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内 ...

  9. shell 字符串操作(长度,查找,替换)详解

    #################################################### 工作中字符串操作举例 #################################### ...

最新文章

  1. 为什么在MM32中的MicroPython中无法打开二进制文件呢?
  2. vue2.x的小问题
  3. RTC时间在LCD上显示需注意的问题
  4. mysql设置check
  5. android点九,android关于点九(.9)图片
  6. R-Tree空间索引算法的研究历程和最新进展分析
  7. 与访问您网站(或Blog)的朋友即时交流
  8. 基于 OpenCV 的图像阴影去除,你会吗?
  9. 转 把GIF图片转换成单个连续的图片 转 tif 等任意多帧图片转换bmp 或者gif等格式...
  10. vue2饿了吗之路第一篇:开发环境准备
  11. linux下的16进制编辑器,在Linux上使用十六进制编辑器 | MOS86
  12. postgresql客户端使用
  13. 轻松学会硬盘还原卡的安装和使用
  14. ywq_app后台分析
  15. 洛谷P2342 叠积木
  16. jsbeautify格式化html属性分行展示
  17. Echarts显示行政区域图并上色
  18. 计算机批量制作邀请函步骤,如何利用Word批量制作邀请函
  19. Cynthia - Fastjson deserialization vulnerability
  20. 【程序人生】“阶段总结”-不论过往

热门文章

  1. 一篇充满碎碎念的短期自我总结(三)【tencent产品笔试+游戏群面总结】
  2. 加油|给考研学子的一封信!
  3. java properties中文_Java读写.properties文件解决中文乱码问题
  4. ConfigServer Firewall安装与配置
  5. 嵌入式开发板上基于RTL8188EUS搭建AP
  6. linux编译wifi驱动RTL8188EUS模块 AP模式
  7. iOS 程序员职业发展:项目经理、技术经理还是产品经理
  8. 08_android入门_android-async-http开源项目介绍及使用方法
  9. 接入微信分享接口步骤
  10. S5PV210的开发板刷机