正整数(1-12/1-48)正则表达式

背景:需求前段传入参数要做限制,要求是1-12月分的正整数,和1-48周的正整数,没的说当然是正则表达式了,作为一个几年都是代码搬运工的俺来讲,度娘不知道的就得靠自己了,

捡起来吧,都忘个差不多了,先上案例吧:

内容:  count =$('#month').val();
      //var regstr = /^(1[0-2]|[1-9])$/;
      var regstr = /^(?:1[0-2]|[1-9])$/;
        if(!regstr.test(count)) {
         U.msg("请输入1-12正整数");
         return false;
        }

其实懂了还是挺简单的,就是计算的时候烧脑细胞,意思是,/....../ 表示一个模式(正则表达式)的开始和结束,^ 表示要开始匹配验证字符串了,()表示你想要的结果的一个整体,

(?:a|b) 官方点儿的解释就是:匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。一般是很晦涩难懂的, 咱们来点儿易懂的解释:就是一个if判断而已,就是(?:这么牛|牛)”就是一个比“就是这么牛|就是牛”更简略的表达式而已,其中| 这个符号表示'或',

好了字符都看懂了,接下来就简单了,正则要开始了,要么是1是第一位数,0-2是第二位数的两位数字,要么就是1-9的一位数字,对,你理解没错,这就是1-12的正整数表达式了,就是这么简单,当然有很多写法,这个是最简单理解的写法,

note:正整数包括两种情况,一种是包括小数的,一种是不包括小数的,这里是包括小数的,

再来一发 举一反三:想要得到1-48的正整数怎么办呢?

还是沿着咱们上面的思路来想,分为三部:单数.双数.整十

单数就是[1-9]

双数中的整十就是[1-3][0-9]

剩下的就是40-48了4[0-8]

分割好了以后就差怎么整合在一起了

count =$('#week').val();
      var regstr = /^(?:[1-9]|([1-3][0-9])?|4[0-8])$/;
        if(!regstr.test(count)) {
         U.msg("请输入1-48正整数");
         return false;
        }

没错 你这次看懂了吧 哎不对中间怎么多了个问号,说明你很细心,这个?的意思是说匹配的时候匹配前面的字符一次或者o次,作用等同与{0,} 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值