`
mutongwu
  • 浏览: 448408 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

exec()、match()与引用

阅读更多

exec()返回值是一个对象,未匹配返回null。可以通过 pattern.lastIndex = 0来重置开始匹配的位置。
var pattern = /Java/g;
var text = "JavaScript is more fun than Java!";
var result;
while((result = pattern.exec(text)) != null) {
    alert("Matched '" + result[0] + "'" +
          " at position " + result.index +
          "; next search begins at " + pattern.lastIndex);
}

match()返回值是一个数组,未匹配返回null。可以通过索引来获取正则表达式中括号内匹配得到的内容。
var url = /(\w+):\/\/([\w.]+)\/(\S*)/;
var text = "Visit my blog at http://www.example.com/~david";
var result = text.match(url);
if (result != null) {
    var fullurl = result[0];   // Contains "http://www.example.com/~david"
    var protocol = result[1];  // Contains "http"
    var host = result[2];      // Contains "www.example.com"
    var path = result[3];      // Contains "~david"
}


正则表达式中, \n 用于引用第n个匹配到的内容。其中n >=1。n 的计算是从左到右,以左括号出现的次序来表示。
例如:
/([Jj]ava([Ss]cri(X|Y)pt)?)\sis\s(fun\w*)/,则([Ss]cript) 匹配到的内容可以用 \2 表示。
又如:/([Jj]ava([Ss]cri(X|Y)pt)?)\sis\s(fun\w*)\3/,则(X|Y)匹配到的内容可以用\3表示。

注意,\n表示的是正则实际匹配到的内容,而不是正则本身。
例如:/['"][^'"]*['"]/ 匹配用单引号或双引号括起来的字符。但是,这里并没有要求单引号或双引号必须配对。
所以字符串 'abc" 是符合的。
如果写成 /(['"])[^'"]*\1/ ,则要求必须单引号或双引号配对出现。
分享到:
评论

相关推荐

    JS正则中的match与exec使用说明

    JavaScript正则表达式中的match()和exec()是字符串对象上进行模式匹配操作的两个重要方法。它们在功能上有一定的重叠,但各自也有独特的用途和行为。下面将详细解释这两个方法的使用说明和区别。 ### match() 方法 ...

    全面解析JS字符串和正则表达式中的match、replace、exec等函数

    在处理字符串时,我们经常会使用到match、replace、exec等函数,这些函数都与正则表达式紧密相关。为了深入理解这些函数的使用和特性,我们可以从以下几个方面来展开知识点的讲解。 ### 正则表达式基础知识 正则...

    js-match()数学函数使用法则.docx

    - 如果没有使用`g`标志,`match()`只会返回第一个匹配项,数组中除了匹配的子串外,还会包含`index`(匹配开始的位置)和`input`(原始字符串的引用)属性。 3. **特殊返回值**: - 当正则表达式中包含捕获括号...

    JavaScript中各种引用类型的常用操作方法小结

    var matches2 = text.match(pattern1); // 返回["cat"] var pattern2 = /\d{3}-\d{2}/; var isMatch = pattern2.test("000-00-0000"); // 返回true ``` 通过以上操作方法,我们可以看到JavaScript的引用类型提供了...

    JavaScript正则表达式之后向引用实例代码

    在JavaScript中,这些引用在`exec()`或`match()`方法执行时才被解析。 以下是一些使用后向引用的经典JavaScript实例: 1. **验证IP地址**: ```javascript function isIP(strIP) { if (strIP == "") return ...

    javascript正则表达式容易被忽略的小问题整理.docx

    3. **`match()`与`exec()`的区别** - **无`g`标志时**:两者的结果是一致的,都会返回第一个匹配项。 - **有`g`标志时**: - `string.match(regexp)`: 如果正则表达式有`g`标志,`match()`会返回一个包含所有匹配...

    javascript RegExp 用法说明_.docx

    除了`match()`之外,还有其他一些与正则表达式相关的有用方法,如`test()`和`exec()`。 - **test()**:用于检测字符串中是否存在匹配项。 - **exec()**:执行一个搜索并返回第一次匹配的结果,如果没有找到则返回`...

    JavaScript快速查询手册.rar

    - 正则对象的方法(test, exec, match, replace, split等) 11. **错误处理** - try...catch语句 - 错误对象(Error, TypeError, RangeError等) 12. **性能优化** - 函数优化(尾调用优化, 即时编译) - ...

    javascript正则表达式参数 g与 i及 gi的使用指南.docx

    while ((match = re.exec(str)) !== null) { console.log(`Found "${match[0]}" at index ${match.index}`); } // 输出: // Found "a" at index 0 // Found "a" at index 4 // Found "a" at index 6 // ...

    实用的正则表达式测试工具

    2. `exec`:执行匹配并返回结果数组,如果没有找到返回null。 3. `match`:在字符串中查找匹配项并返回数组。 4. `replace`:替换匹配项。 5. `split`:根据正则表达式分割字符串。 JavaScript的示例代码: ```...

    【第十二章】JavaScript【正则表达式(2)】

    在JavaScript中,我们通常使用`match()`、`test()`、`exec()`和`replace()`方法来与正则表达式交互。`match()`用于查找字符串中所有与正则表达式匹配的部分,返回一个数组;`test()`检查字符串是否含有与正则表达式...

    puppet-ext_file_line:具有正则表达式反向引用支持的 Puppet 文件行资源

    与原始 file_line 相比的主要优点是能够在 line 属性中使用正则表达式反向引用。 此外,将显示应用更改的差异(或在 noop 模式下的更改)。 当任何 Augeas 镜头不支持特定文件格式时,此资源通常很有用。 当您不想...

    运用正则抓取网页数据

    3. **分组与反向引用**: `( )`用于分组,方便操作和引用,`\数字`表示反向引用,引用前面分组匹配的内容。 4. **预定义字符类**: 如`\d`代表数字,`\s`代表空白字符,`\w`代表字母、数字或下划线。 5. **边界匹配*...

    正则式学习笔记,简明版

    - `match`接收正则表达式作为参数,返回一个数组,与`exec`相似。 - `search`返回第一个匹配项的位置,如果未找到返回-1。 - `replace`方法用于替换匹配的子串,其第二个参数可以引用正则表达式的捕获组,如`$1`...

    正则表达式—JavaScript

    JavaScript提供了多个内置函数来与正则表达式配合使用,如 `test()`、`exec()`、`match()`、`search()` 和 `replace()`。这些方法各有特点: - `test()`:在字符串中查找是否存在与正则表达式匹配的文本,返回布尔...

    JavaScript正则表达式迷你书

    还有相关API注意要点,如“search”和“match”参数问题、“exec”比“match”更强大等。通过真实案例展示正则表达式的多种应用场景,如字符串trim方法的模拟、HTML转义和反转义等。 综上所述,《JavaScript正则...

    js RegEx 正则取到自已想要值

    4. **分组与反向引用**: - `( )`:用于创建一个捕获组,可以捕获匹配的部分并在之后的表达式中引用。 - `\number`:反向引用,引用前面第number个捕获组匹配的值。 5. **选择器和否定预查**: - `|`:表示或,...

    正则表达式详解与实例

    4. **分组与反向引用**:使用圆括号`()`可以创建分组,允许捕获和引用匹配的部分。反向引用如`\1`、`\2`引用之前分组的匹配内容。 5. **边界匹配器**:`\b`用于匹配单词边界,`^`和`$`分别表示字符串的开始和结束。...

Global site tag (gtag.js) - Google Analytics