Javascript的split函数如何解释以下正则表达式?

时间:2018-09-02 21:16:54

标签: javascript regex

谁能解释为什么“脚本”是输出数组的一部分以及正则表达式如何在split函数中解释?

console.log(
  "is javascript my favorite language?".split(/JAVA(Script)/i)
);

输出

["is ", "script", " my favorite language?"]

1 个答案:

答案 0 :(得分:2)

MDN's docs说:

  

如果separator是包含捕获括号的正则表达式,则每次匹配separator时,捕获括号的结果(包括任何未定义的结果)都会被拼接到输出数组中。

java是匹配的,但未捕获,而script 捕获在一个组中,因此它包含在结果数组中。

任何捕获的组都将包括在内,如您所见:

console.log(
  "is javascript my favorite language?".split(/JAVA(Script)( )(my)/i)
)