JavaScript 正则表达式 方法

🌙
手机阅读
本文目录结构

如何学习正则

可以在浏览器的控制台,通过命令查看

let reg=/\d+/;
console.dir(reg);//顺着原型链查找有哪些方法
console.dir(RegExp.prototype);//正则类的原型
console.dir(RegExp);

实例方法

  • test 在字符串中检测模式匹配,返回 truefalse
  • exec 该方法是专门为捕获组而设计的
    • 功能:正则捕获的数据,一个数组;
    • 参数:要应用模式匹配的字符串
    • 特性:
      • 使用全局标记 g;持续查找所有匹配项并返回
      • 不使用全局标记 g;始终返回第一个匹配项信息
    • 执行的过程
      • 检测字符串参数,获取正则表达式匹配文本
      • 找到匹配文本则返回一个数组
        • 第 0 个元素:与整个模式匹配的字符串
        • 其他元素:与捕获组匹配的字符串
      • 否则返回 null
    • 派生属性
      • index 匹配项在字符串中的位置
      • input 应用正则表达式的字符串
      • length 返回数组元素的个数
var text = "cat, bat, sat, fat";
var pattern1 = /.at/;
var matches = pattern1.exec(text);
console.log(matches.index); //0
console.log(matches[0]); //cat
console.log(pattern1.lastIndex); //0
matches = pattern1.exec(text);
console.log(matches.index); //0
console.log(matches[0]); //cat
console.log(pattern1.lastIndex); //0

var pattern2 = /.at/g;
var matches = pattern2.exec(text);
console.log(matches.index); //0
console.log(matches[0]); //cat
console.log(pattern2.lastIndex); //3

matches = pattern2.exec(text);
console.log(matches.index); //5
console.log(matches[0]); //bat
console.log(pattern2.lastIndex); //8

第一个模式 pattern1 不是全局模式,因此每次调用 exec() 返回的都是第一个匹配项( “cat” )。

而第二个模式 pattern2 是全局模式,因此每次调用 exec() 都会返回字符串中的下一个匹配项,直至搜索到字符串末尾为止。

此外,还应该注意模式的 lastIndex 属性的变化情况。

在全局匹配模式下, lastIndex 的值在每次调用 exec() 后都会增加,而在非全局模式下则始终保持不变。\

IE 的 JavaScript 实现在 lastIndex 属性上存在偏差,即使在非全局模式下,lastIndex 属性每次也会变化。

字符串方法

与正则可以搭配的方法扩展

  • match 找到一个或者多个正则表达式的匹配
  • replace 替换与正则表达式匹配的子串
  • search 检索与正则表达式匹配的值
  • split 把字符串分割为字符串数组

扩展思考

看看其他的一些方法,了解都是做什么的。

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了