正則表達式一:?:

一、加?: 跟不加有什麼區別呢?

加?:

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 但不獲取匹配結果,也就是說這是一個非獲取匹配,不進行存儲供以後使用。這在使用 “或” 字符 (|) 來組合一個 模式的各個部分是很有用。

簡單的說就是加?:不會對()內匹配規則進行分組,後面不需要再使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章