正则保留两位小数(详解)

整数和小数,保留两位小数的正则表达式:

具体什么意思呢

^(([1-9]{1}\d*)|([0]{1}))(\.(\d){0,2})?$
二、知识点
  1、首先从写法上可以看出,使用了显式定义正则表达式的语法,因为其中存在对字符串""(反斜杠)的转义

2、正则表达式的定义共有2种方式:显示定义和隐式定义

1 /\d是正则表达式中的元字符,用于匹配数字,相当于[0-9],所以[0-9]也可以写成\d/
2 var myregex = new RegExp("[0-9]"); //显式定义
3 var 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.14、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})$

原文链接:https://blog.csdn.net/hyunbar/article/details/96056661/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容