一、加?: 跟不加有什么区别呢?
加?:
var a = "java6 java7 java8 java9"
a.replace(/java(?:6|7)/g,"$1");
输出结果:"$1 $1 java8 java9";
不加?:
a.replace(/java(6|7)/g,"$1");
输出结果:“6 7 java8 java9”;
看出区别了,
菜鸟上是这么说的:
匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 “或” 字符 (|) 来组合一个 模式的各个部分是很有用。 |
---|
简单的说就是加?:不会对()内匹配规则进行分组,后面不需要再使用