match返回参数和分组

来源:互联网 发布:如何看待网络暴力 知乎 编辑:程序博客网 时间:2024/05/29 14:52
var style='rotateX(-180deg)';style.match(/rotateX\(([-]?\d+)/);

代码如上。

我的理解是返回字符串['rotateX(-180'],但实际却是['rotateX(-180','-180']

解答:

和贪婪没一点关系。match匹配成功时会返回数组:

  1. 如果正则为全局匹配,那么数组的第一个及以后元素存放的都是匹配的字符串,不再存放匹配的分组
  2. 如果正则不为全局匹配,那么数组的第一个元素存放的是匹配的字符串,第二个及以后元素存放的是匹配的分组
又比如:
({}).toString.call('abc').match(/(\s)([a-zA-Z]+)/)   // [" String", " ", "String", index: 7, input: "[object String]"]