⼩数点后保留2位⼩数的正则表达式⼀、前提
整数和⼩数,保留两位⼩数的正则表达式:
具体什么意思呢
^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){0,2})?$
⼆、知识点
1、⾸先从写法上可以看出,使⽤了显式定义正则表达式的语法,因为其中存在对字符串"\"(反斜杠)的转义
2、正则表达式的定义共有2种⽅式:显⽰定义和隐式定义
1/*\d是正则表达式中的元字符,⽤于匹配数字,相当于[0-9],所以[0-9]也可以写成\d*/
2var myregex = new RegExp("[0-9]"); //显式定义
3var myregex = /[0-9]/; //隐式定义
3、何谓定位符?即限定某些字符出现的位置。
字符串截取小数点说明:^表⽰必须以什么字符开头;$表⽰必须以什么字符结尾。
4、何谓限定符?即限定某个字符或某类字符出现的次数。
说明:
*表⽰重复0次或更多次(任意次数);
?表⽰重复0次或1次(最多1次);
{n}表⽰重复n次;
{n,m}表⽰重复n-m次;
5、何谓分组?分组⼜称为⼦表达式,即把⼀个正则表达式的全部或部分分成⼀个或多个组。
语法:分组使⽤的字符为“(”和“)”,即左括号和右括号。每⼀个⼦表达式都可以当做⼀个整体来处理。
三、拆分
1//第⼀步:先分组,不管定位符和限定符。总共可分为两⼤组。
2 (([1-9]{1}\d*)|([0]{1}))//第⼀⼤组:整数部分
3 (\.(\d){0,2})//第⼆⼤组:⼩数部分
四、分析第⼀⼤组
1//第⼆步:继续分组,将第⼀⼤组(整数部分)继续拆分,可分为3部分。
2 ([1-9]{1}\d*)//第⼀部分
3 | //第⼆部分
4 ([0]{1})//第三部分
1、[...]是正则表达式中的元字符。它会匹配⽅括号中的所有字符。
2、|是正则表达式中的选择符。简单来说就是:⽤于⼆选⼀。即选择2个选项之中的任意⼀个,选他或选她。
3、整数部分的两种情况:⾸位是0和⾸位不是0。即0.12、13.1
4、5.21
4、第⼀部分中的内容,即第⼀种情况,⾸位不为0:([1-9]{1}\d*)
可以看出,第⼀部分由两个模块组成,即[1-9]{1}和\d*。
(1)[1-9]{1}表⽰1-9之间的数字只出现⼀次,即保证了该数的⾸位不是0,总之是⼤于0的数。
(2)\d*表⽰0-9之间的数字可以出现任意次,即0次或更多次。出现0次说明是⼀位整数。出现更多次就是多位整数。
5、第三部分中的内容,即第⼆种情况,⾸位为0:([0]{1})【⼀个字符没必要使⽤[元字符,直接写0就⾏,即(0{1})】
表⽰数字0只能出现⼀次,即⾸位只能是0,⽽且只能有⼀个0。
第⼀⼤组匹配了整数部分的情况,⼤于0的数还是⼩于1的数
五、分析第⼆⼤组
1(\.(\d){0,2})//第⼆⼤组:⼩数部分
2//第三步:继续分组,将第⼆⼤组(⼩数部分)继续拆分,可分为3部分。
3\.//第⼀部分
4(\d)//第⼆部分
5{0,2}//第三部分
1、.(点)是正则表达式中的元字符。它会匹配除了换⾏符以外的任意字符。
2、由于.(点)是元字符,所以,如果想要匹配字⾯意义上的点时(此处需要匹配⼩数点),需要使⽤转义字符\(反斜杠)将它进⾏转义,即\.。
3、如果要匹配⼩数点后保留2位⼩数,则只需要改⼀下限定符即可。\.\d{2}
六、总结
^(([1-9]{1}\d*)|(0{1}))(\.\d{0,2})?$就表⽰了⼩数点后可以保留0位、1位、或2位⼩数。
要求⼩数点后只能保留2位⼩数,则修改表⽰⼩数点后⾯数字的重复次数(即位数)的限定符{},直接将{0,2}改为{2},
然后去掉限定符?即可。去掉了 ? 就代表该数不可能是整数,⼀定是⼩数。
最终的正则表达式:^(([1-9]{1}\d*)|(0{1}))(\.\d{2})$
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论