search

Home  >  Q&A  >  body text

javascript - 【已解决】js正则match返回结果

javascriptvar style='rotateX(-180deg)';
style.match(/rotateX\(([-]?\d+)/);

代码如上。

我的理解是返回字符串['rotateX(-180'],但实际却是['rotateX(-180','-180'],哪位大神能指点下迷津啊?

答案见回复

阿神阿神2897 days ago326

reply all(2)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 15:20:06

    和贪婪没一点关系。

    match匹配成功时会返回数组:

    1. 如果正则为全局匹配,那么数组的第一个及以后元素存放的都是匹配的字符串,不再存放匹配的分组
    2. 如果正则不为全局匹配,那么数组的第一个元素存放的是匹配的字符串,第二个及以后元素存放的是匹配的分组

    reply
    0
  • PHPz

    PHPz2017-04-10 15:20:06

    是因为你用了()分组了啊,match的结果第一个是匹配的结果,之后的是分组内容;你可以这样:

    style.match(/rotateX\((?:[\-]?\d+)/)
    

    非捕获分组

    reply
    0
  • Cancelreply