2016-11-24 44 views
0

为什么JavaScript的正则表达式JavaScript正则表达式/ E * /导致空匹配

/e*/ 

不能匹配字符串“hello”的任何部分?

我已经尝试以下

"hello".match(/e*/)  //return [""] 

/e+/可以匹配

"hello".match(/e+/)  //return ["e"] 

我俯瞰任何简单的东西????

回答

2

它匹配了,否则你会得到null作为结果。

该匹配在字符串的开始处是零字符。你的断言是“在零个或多个e的字符串中找到一个位置”:在hello的开始位置,e有零个或多个,所以我们不需要进一步搜索。 match预计返回[""](匹配的零字符)。

另一方面,/e+/想要一个或更多e字符;这在字符串的开始处并不满意,但它在下一个位置处满意,并且您获得["e"]