当前位置: 首页 > 面试题库 >

RegExp的exec()函数和String的match()函数有什么区别?

司寇瑾瑜
2023-03-14
问题内容

如果我运行此命令:

/([^\/]+)+/g.exec('/a/b/c/d');

我得到这个:

["a", "a"]

但是如果我运行这个:

'/a/b/c/d'.match(/([^\/]+)+/g);

然后,我得到了预期的结果:

["a", "b", "c", "d"]

有什么不同?


问题答案:

exec带有全局正则表达式的表达式应在循环中使用,因为它仍将检索所有匹配的子表达式。所以:

var re = /[^\/]+/g;
var match;

while (match = re.exec('/a/b/c/d')) {
    // match is now the next match, in array form.
}

// No more matches.

String.match 为您执行此操作,并丢弃捕获的组。



 类似资料:
  • 问题内容: 我可以在Swift库中看到这些定义: 定义为的成员函数与定义为的另一个成员函数有什么区别?仅仅是为了结构和枚举的静态功能,以及用于类和协议吗?还有其他应该知道的区别吗?在语法本身中具有这种区别的原理是什么? 问题答案: 是否仅将static用于结构和枚举的静态函数,将class用于类和协议? 那是主要区别。其他一些区别是类函数是动态调度的,并且可以被子类覆盖。 协议使用class关键字

  • 我可以在Swift库中看到这些定义: 定义为的成员函数和定义为的成员函数之间有什么区别?简单地说,是用于结构和枚举的静态函数,而是用于类和协议吗?还有什么其他的不同之处是你应该知道的吗?语法本身有这种区别的理由是什么?

  • 问题内容: 我遇到了一段Mongoose代码,其中包括查询findOne和一个exec()函数。 我以前从未在Javascript中看到过该方法吗?它到底是做什么的? 问题答案: 基本上,当使用猫鼬时,可以使用助手来检索文档。每个接受查询条件的模型方法都可以通过或方法执行。 : : 因此,当您不传递回调时,可以构建查询并最终执行它。 您可以在 “Mongoose文档”找到其他信息。 更新 将Pro

  • 本文向大家介绍JavaScript中的匿名函数和内联函数有什么区别?,包括了JavaScript中的匿名函数和内联函数有什么区别?的使用技巧和注意事项,需要的朋友参考一下 匿名函数 顾名思义,匿名允许创建没有任何名称标识符的函数。它可以用作其他函数的参数。这就是可以使用JavaScript匿名函数的方式- 另一个示例可以如下- 内联函数 一个内联 函数是一个javascript函数,其被分配给在运

  • 问题内容: Numpy和函数之间有什么区别?什么时候应该使用一个而不是另一个?他们似乎为我能想到的所有输入生成了相同的输出。 问题答案: 由于将其他问题重定向到这个询问问题或其他数组创建例程的问题,因此可能有必要简要概述每个问题的作法。 区别主要在于何时返回不变的输入,而不是将新数组作为副本。 提供多种选择(其他大多数功能都围绕着薄包装纸),包括用于确定何时复制的标志。完整的解释将和文档一样长(请

  • numpy的和函数之间有什么区别?什么时候你应该用一个而不是另一个?它们似乎为我能想到的所有输入生成相同的输出。