今天刚需求,本来都做完了,组长审核说,匹配的时候用正则表达式吧,便于维护…好吧。冲!,也正好复习一下正则。

  • 要求匹配非负整数:例如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)$/;
    有哪里讲的不对,或者有缺陷的,请各位及时指出,本人一定虚心改进!

更多推荐

非负整数的正则表达式匹配