正则表达式 【九】
发布日期:2021-05-14 16:19:39 浏览次数:21 分类:精选文章

本文共 1097 字,大约阅读时间需要 3 分钟。

正则表达式(RegExp)对象方法

1. RegExp对象基础

RegularExpression(简称RegExp)是用于匹配字符串的在JavaScript中内置对象。通过创建RegExp对象,可以利用正则表达式来对字符串进行复杂的匹配操作。


2. 常用方法

除了test()方法,RegExp对象还提供了exec()方法,用以执行搜索并返回结果。

2.1 test()方法
  • 语法test(str)
  • 功能:检测创建的RegExp实例所匹配的字符串是否存在。返回值:
    • true:表示匹配成功。
    • false:表示匹配失败。
2.2 exec()方法
  • 语法exec(str)
  • 功能:使用RegExp实例中的表达式对一个字符串进行搜索。如果返回值不为null,则表示匹配成功。此时返回的值是一个数组,包含以下信息:
  • [0]:匹配的整个字符串部分。
  • **[1]**及以下:对应于正则表达式中的捕获组,其值即为各子匹配结果。
  • input:被匹配的原始字符串。
  • index:匹配项起始的字符位置(0基数)。
  • lastIndex:最后一个匹配项结束的字符位置(0基数)。

注意事项

  • 局部匹配与全局匹配

    • 如果 RegExp 对象被标记为全局(即正则表达式最后带有g标志),则每次调用exec()test()都会从最后一次匹配结束后的位置继续搜索。
    • 如果没有标记全局(默认情况),则每次都将从字符串的起始位置开始新的搜索。
  • 匹配结果的返回

    • exec()方法:若没有找到匹配,返回null;若找到匹配,返回一个包含完整匹配信息的数组。匹配成功后, RegExp对象的静态属性也会更新,反映匹配结果。
    • test()方法:其只返回布尔值,无法获取具体的匹配信息。

  • 实例说明

    案例1:验证密码格式

    var txtpassword = "my oeac";
    var re = new RegExp("^[A-Za-z]\\w{5,17}$");
    var result = re.test(txtpassword);
    // 如果result为true,表示密码符合正则表达式格式要求。

    案例2:提取超链接的href属性值

    var code = "";
    var re = /href="(.*?)"]/g;
    var result = re.exec(code);
    console.log("匹配结果:" + result[0]);

    总结

    通过test()exec()方法,可以分别实现对字符串是否符合正则表达式的单次和多次匹配检查。如果需要高效地处理多段匹配任务,则建议结合exec()方法并配合全局标志g来实现。

    上一篇:正则表达式【十】
    下一篇:正则表达式 【八】

    发表评论

    最新留言

    第一次来,支持一个
    [***.219.124.196]2025年04月07日 11时53分23秒