为了账号安全,请及时绑定邮箱和手机立即绑定

/\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"


正在回答

3 回答

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

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

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



0 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信