用零宽断言 `/(?<=^|,)12(?=,|$)/` '12,34,56,12,34,56,12'.replace(/(?<=^|,)12(?=,|$)/g, '[]') 结果是 `[],34,56,[],34,56,[]` 删除的话,正则改一下,需要一点点额外 JS 辅助一下 '12,34,56,12,34,56,12'.replace(/(^|,)12(,|$)/g, function($0, $1, $2){ // console.log($0, $1, $2); return ($1===$2 ? ',' : ''); }) 结果是 `34,56,34,56`