'dsjsakdjasdk__(123273872381)'.match(/(?<=\().*(?=\))/g);
结果: [“123273872381”]
主要是用的 ?<= 和 ?=,"(?<=\()" 是匹配 前面有 “(” 的内容,"(?=\))" 是匹配后面有 “)” 的内容
其他网络上的方法
1、"/(([^)]*))/"
var aa="ldfjsldfj(dsfasjfj3124123)";
var result = aa.match(/\(([^)]*)\)/);
// 此时result=["(dsfasjfj3124123)", "dsfasjfj3124123"];
if (result) {
console.log(result[1]); // "dsfasjfj3124123"
}
这一种的解决原理是,不适用 g,正则就会生成 lastIndex(了解lastIndex点击), 下册匹配就会从lastIndex的位置开始检索,上面的正则第一次检测到 ldfjsldfj( ,下一次开始检测 dsfasjfj3124123) 由于 [^)] 排除了 “dsfasjfj3124123)” 尾部的 “)”,所以第二次结果 dsfasjfj3124123
最后总的结果:["(dsfasjfj3124123)", “dsfasjfj3124123”]
2、"/((.+))/g"
/\((.+)\)/g
测试结果如下:
'ldfjsldfj(dsfasjfj3124123)'.match(/\((.+)\)/g);
console.log(RegExp.$1); // dsfasjfj3124123
这个正则直接匹配出:(dsfasjfj3124123),再利用(.+)分组,让RegExp (正则表达式是描述字符模式的对象) 使用占位符 $1获取括号里头的内容
占位符: 顾名思义,占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号,广泛用于计算机中各类文档的编辑
一个()对应一个占位符
例如:/(\d)(\w)(\D)/ ===> $1,$2,$3
(\d) - $1
(\w) - $2
(\D) - $3