今天刚需求,本来都做完了,组长审核说,匹配的时候用正则表达式吧,便于维护…好吧。冲!,也正好复习一下正则。
要求匹配非负整数:例如0,1,2 ,3…位数不限。
这好办:let exp = /^[0-9]+$/
;
[0-9]表示匹配0-9,+表示匹配至少一次。但是,有缺陷,例如01,02,匹配也为true,继续优化!0开头只有0,所以剥离出来:let exp = /^[1-9][0-9]*|0$/
;
*表示匹配0次及以上,|表示或者,弥补0开头后接数字缺点;
不过还是不够完善,因为010的话,还是能够匹配true,这是由于|0后直接接了dollar,表示以0结尾,所以应该使用()包住,以整体表示;
let exp = /^([1-9][0-9]*|0)$/
;
有哪里讲的不对,或者有缺陷的,请各位及时指出,本人一定虚心改进!