正整数(1 |
您所在的位置:网站首页 › js正整数校验 › 正整数(1 |
项目bug乱飞,终于逐个要制服了,记录下中间学到的东西,也算慰藉下这么优秀的自己 今天会话不多说了,记录完了抽烟庆祝去, 背景:需求前段传入参数要做限制,要求是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,} 纯属个人理解,如有错误,欢迎指出
|
今日新闻 |
点击排行 |
|
推荐新闻 |
|
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |