一、加?: 跟不加有什麼區別呢?
加?:
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 但不獲取匹配結果,也就是說這是一個非獲取匹配,不進行存儲供以後使用。這在使用 “或” 字符 (|) 來組合一個 模式的各個部分是很有用。 |
---|
簡單的說就是加?:不會對()內匹配規則進行分組,後面不需要再使用