发现匹配时,jcc exec会不会停止?

时间:2014-04-08 12:52:32

标签: javascript regex

见下面的代码

var re = new RegExp("j.*t");
var str = "javascript is not java and script. javascript is just javascript";

var execresult = re.exec(str);
console.log(execresult);

var matchresult = str.match(re);
console.log(matchresult);

都返回

["javascript is not java and script. javascript is just javascript"]

我的期望是它会返回第一个匹配的文字" javascript"单独,但整个句子被发现匹配。为什么?是exec的工作方式吗?

我在jsbin.com执行此操作,如果这很重要。

2 个答案:

答案 0 :(得分:2)

改变贪婪!

j.*?t

额外的标记要求尽可能少地抓住。

答案 1 :(得分:0)

要捕获表达式可以使用的每个值,我建议这样做:

(j.*?t)

您可以在此处的演示中看到 - DEMO - 返回5个结果。

  • 的javascript
  • java和脚本
  • 的javascript
  • javascript