javascript正则表达式exec()函数实际返回什么?

时间:2014-05-29 06:05:32

标签: javascript regex

只是出于兴趣 - 实际上是什么?

当我console.log时(假设有一个匹配)我得到的东西看起来像是在普通对象和数组之间:

 [ 'abc', undefined, index: 0, input: 'abcdef' ]

2 个答案:

答案 0 :(得分:4)

我认为你在谈论console.log('abcdef'.match(/abc/))的结果。

String.prototype.match() 会返回包含匹配结果的数组,如果没有匹配则返回 null

如果您将console.log更改为console.dir,您会看到它是一个数组(向数组中添加input属性,请记住数组中的数组javascript也是一个对象,您可以为其添加属性。)

enter image description here

答案 1 :(得分:0)

这是一个带有一些值的数组。但是,它包含字符串和一些键值对。 (我不确定你正在使用什么正则表达式函数。)

[ 'abc', undefined, index: 0, input: 'abcdef' ]

以下是正则表达式的示例..当字符串中有多个项目与给定模式匹配时,它返回一个包含所有项目的数组。

var str = "The rain in SPAIN stays mainly in the plain"; 
var res = str.match(/ain/g);

[ain,ain,ain]