?在正则中的作用

时间:2025-03-31 08:09:24
?在正则中有很多的作用
1、它本身作为一个量词元字符代表出现0-1
var reg=/\d?/; ->0-9之间的一个数字,出现0次或者1

2、出现在另外一个量词元字符的后面,是取消捕获时候的贪婪性
var reg=/\d ?/g;
var str="tengxun2015";
(reg); ->["2", "0", "1", "5"]
3、?: 对于分组来说,是只匹配,不捕获
var reg=/tengxun(\d )/g;
var str="tengxun2015~~~tengxun2016~~~";
(str) ->["tengxun2015","2015"...]
(str) ->["tengxun2016","2016"...]
var reg=/zhufeng(?:\d )/g;
var str="tengxun2015~~~tengxun2016~~~";
(str) ->["tengxun2015"...]
(str) ->["tengxun2016"...]
4、?= 正向预查 / ?!负向预查
/tengxun(?=1|2)/ 把符合后面是1或者2,前面是tengxun的"tengxun"匹配到 ->"tengxun1",我们匹配的是"tengxun",如果是"tengxun3",我们是匹配不到"tengxun"
/tengxun(?!1|2)/ 把符合后面不是1或者2,前面是tengxun的"tengxun"匹配到

更多专业前端知识,请上 【猿2048】