前端正则,小括号,不是很理解

()的含义,看了几篇文章,感觉没看到位,可能是我理解上有问题

比如下面
() 小括号在正则中代表分组,一般在 match 方法中用来返回全匹配加上多个分组结果

const str='regex148';
var result=str.match(/.*(ex)(.*)/);

实在没理解,这里说的“全匹配” 和“多个分组” ,具体是怎么划分的

阅读 2.7k
4 个回答
结果:["gex1", "ex", "1", index: 2, input: "regex148", groups: undefined]
索引0gex1 全匹配。为//之间整个内容
索引1ex 第一个小括号的内匹配结果
索引21 第二个小括号的匹配结果

第一个值表示全匹配,后面的每一个依次表示小括号的结果。
replace一样
你也许见过 'xxxxxx'.replace(/(a)(b)(c)/g, (g, $1, $2, $3))

括号就是分组,分组的目的有很多,比如要捕获来用,也有可能是为了方便构建规则式语句。

`var str = "2019-5-1";
//改成2019年05月01日
var add0 = num=>num<10?num:"0"+num;
var result = str.replace(/(d+)-(d+)-(d+)/,$1年${add0('$2')}月${add0('$3')}日)
console.log(result);//2019年05月01日`

1.组的概念 一般与$搭配使用

2.优先级的作用

按照下面的优先级执行 当与其他元字符发生冲突时候 用这个

  1. \ 转义符
  2. (), (?:), (?=), [] 圆括号或方括号
  3. *, +, ?, {n}, {n,}, {n,m} 限定符
  4. ^, $ 位置
  5. | “或” 操作
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题