问答详情
源自:2-11 test 和 exec方法

/\d(\w)\d/g 和 /\d\w\d/g 有什么区别吗?我做测试的时候两个 正则筛选出来的字符串结果是一样的

/\d(\w)\d/g   和  /\d\w\d/g   有什么区别吗?我做测试的时候两个 正则筛选出来的字符串结果是一样的

下面的是我的例子

'a1a2a3a4a5sdfd'.replace(/\d(\w)\d/g,"X")

"aXaXa5sdfd"

'a1a2a3a4a5sdfd'.replace(/\d\w\d/g,"X")

"aXaXa5sdfd"


提问者:韶华_易逝 2018-12-03 11:12

个回答

  • 1frgdhf
    2019-02-19 14:22:09

        区别在于exec()返回的数组不一样

    第一个:一个数组会有2个元素,其中第一个是与正则表达式相匹配的文本,第二个则是正则表达式中子表达式的文本

    第二个,一个数组只有1个元素,因为没有分组,不存在子表达式



  • 记得加卤蛋
    2019-02-18 17:30:47

    加分组之后的好处还有一个是  /(\d)\w\1/  这个\1表示第一个分组 并且筛选的内容是和第一个一样的 这也是分组的一个好处之一 

  • 请叫我大幸运
    2018-12-03 20:53:37

    加括号表示分组,在你使用exec()方法的时候,就会有区别的