var style='rotateX(-180deg)';
style.match(/rotateX\(([-]?\d+)/);
代码如上。
我的理解是返回字符串['rotateX(-180']
,但实际却是['rotateX(-180','-180']
解答:
和贪婪没一点关系。match
匹配成功时会返回数组:
- 如果正则为全局匹配,那么数组的第一个及以后元素存放的都是匹配的字符串,不再存放匹配的分组
- 如果正则不为全局匹配,那么数组的第一个元素存放的是匹配的字符串,第二个及以后元素存放的是匹配的分组
又比如:
({}).toString.call('abc').match(/(\s)([a-zA-Z]+)/) // [" String", " ", "String", index: 7, input: "[object String]"]