正则表达式验证小数_java 正则表达式验证小数 - CSDN
精华内容
参与话题
  • 网上很多关于验证小数正则表达式,但是很多都不是百分百正确,所以我结合一些前辈的经验,自己写了一个。  验证非0开头的无限位整数和小数。整数支持无限位,小数点前支持无限位,小数点后最多保留两位。  js...

      网上很多关于验证小数的正则表达式,但是很多都不是百分百正确,所以我结合一些前辈的经验,自己写了一个。

      验证非0开头的无限位整数和小数。整数支持无限位,小数点前支持无限位,小数点后最多保留两位。

      js代码如下:

      var reg = /^(([^0][0-9]+|0)\.([0-9]{1,2})$)|^(([^0][0-9]+|0)$)|^(([1-9]+)\.([0-9]{1,2})$)|^(([1-9]+|0)$)/;

     

      单独拆分:

      1. 整数:/^(([^0][0-9]+|0)$)|^(([1-9]+)$)/

      2. 小数:/^((([^0][0-9]+|0)\.([0-9]{1,2}))$)|^(([1-9]+)\.([0-9]{1,2})$)/

     

      根据需求可更改:

      1. 若更改小数点前限制位数,则更改 + (例如:小数点前限制4位——([^0][0-9]\d{0,3}|0) ——([1-9]]\d{0,3}) ),整数同理。

      2. 若更改小数点后限制位数,则更改 {1,2} ( 例如::小数点后最多保留3位——{1, 3};小数点后必须保留3位——{3} )。

           补充:

      经校验,此正则无法校验第一位就是 . 的数字,如:.1234 。故在程序校验中,还要用indexOf来判断小数点是否在第一位。

    展开全文
  • 使用js验证一个带一到两位小数的正数或负数,下面这种方式可以 var reg = /^([\+ \-]?(([1-9]\d*)|(0)))([.]\d{0,2})?$/;  但是若换为:var reg = /^([\+ \-]?([1-9]\d*)|(0))([.]\d{0,2})?$/;  -0.1则验证不...
    使用js验证一个带一到两位小数的正数或负数,下面这种方式可以

    var reg = /^([\+ \-]?(([1-9]\d*)|(0)))([.]\d{0,2})?$/;

      但是若换为:var reg = /^([\+ \-]?([1-9]\d*)|(0))([.]\d{0,2})?$/;

      -0.1则验证不过去。

    展开全文
  • 下面这段代码来自网络上比较流行的正则表达式金额验证,由于很少自己写正则表达式,所以当提出需要限制最大金额的时候,我对这个表达式进行了一点改动,顺便做个笔记。var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)...

    金额格式正则表达式的结果在第三点,可点击目录查看,有兴趣可以看写的过程和分析,自定义金额格式在第二点。

    下面这段代码来自网络上比较流行的正则表达式金额验证,由于很少自己写正则表达式,所以当提出需要限制最大金额的时候,我对这个表达式进行了一点改动,顺便做个笔记。

    var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
    var money = "520.100";
    //000 错
    //0 对
    //0. 错
    //0.0 对
    //050 错
    //00050.12错
    //70.1 对
    //70.11 对
    //70.111错
    //500 正确
    if (reg.test(money)) {
      alert("正确~");
    }else{
      alert("有误~");
    };

    1.解读表达式

    首先我们分析下这个表达式,即使没有正则表达式的基础也很好看懂。
    该表达式的第一层有三个 “|” ,表示他允许有三种表达式。分别是:

    • (^1-9?(.[0-9]{1,2})?$)

      ^与$,基础知识,非新手略过

      ^ 表示匹配字符串的开始,$表示匹配字符串的结束,这两个符号的意义在于整个字符串的格式必须完全满足于该正则表达式,如果不加 ^或$ ,那诸如:bd12,12bd等等表达式可能都会判断为正确的金额格式,因为没有限制开始和结束,正则表达式只需要验证的目标存在需要的格式都算正确。

      书归正传

      • [1-9] 表示从1-9取一位数字
      • ([0-9]+)? 表示从0-9取一位数字,+重复一次或更多次,也就是表示0到无穷大,后面再加了一个”?”,重复零次或一次,也即是,这个表达式可能是什么结果都没有。那把这个表达式和前面的[1-9]结合就是 (^[1-9]([0-9]+)? 正整数到无穷大。
      • (.[0-9]{1,2})?$ 表示”.”+ (0到9之间的数字)*(1到两个) ,外层再套了一个括号+? ,表示或许没有或一次。
    • (^(0){1}$) 这个表达式的数字范围只有一个,0.

    • (^[0-9]\.[0-9]([0-9])?$) :[0到9之间的数字]+“.”+[0-9之间的数字]*{0或者1个}

    整个表达式理解起来没什么难度,但加入要添加点内容该如何写呢?我现在需要控制最大值为千万,即最大为9999999.99

    表达式只需要改一部分

    var reg = /(^[1-9]([0-9]{0,7})(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$

    ([0-9]+)? 改为了 ([0-9]{0,7})

    以上应该没什么不好理解的吧。我主要想分析下以上的表达式能否进一步优化,是否还有缩减的空间。

    2.自己写表达式和优化

    那我们首先要明白我们的需求——金额格式。我们不防列下所有的常规的合法金额格式。

    金额由三部分组成:

    整数部分(A) 、 小数点(B) 、 小数部分(C)

    我们将此三部分简化为A/B/C,方便下面罗列

    有效金额的组合方式为

    1. A
    2. A + B + C

    结论:
    1. A可以独立存在,也可以和其他部分一起存在,也即是A不需要依赖BC,只要他是整数就OK。
    2. B和C必须同时依附于A存在

    既然只有两种情况那似乎很好写了,我们先写A,A的表达式基本可以分为两种情况,
    1. 第一位为0
    2. 第一位不为0

    这两种是一定要区分开的,因为为0后面就不能接其他数字,那必然要分两种情况

    ^([1-9]([0-9]{0,n})|[0])$    --n表示整数最大位数-1,n大于0

    整数部分写好了,我们再写小数部分,BC一起存在,可有可无

    注意:单独验证这一部分的时候是没有整数的,即合法值为小数点开头

    ^(/.[0-9]{1,m})?$          --m表示最大位数-1,m大于0

    将两部分结合的时候要注意一点,开始和结束的符号,还有小数部分的必要性,所以小数整个部分肯定要加个?

    上下结合结果如下(n、m可根据实际需求填写。)

    ^([1-9]([0-9]{0,n})|([0]))(\.[0-9]{1,m})?$

    例如:整数部分最大8位,2位小数,n=8-1,m=2

    ^([1-9]([0-9]{0,7})|([0]))(\.[0-9]{1,2})?$

    3.结果对比

    怎么样,比之

    (^[1-9]([0-9]{0,7})(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$

    是否要精简一些?当然,无论哪一种都是合理的,只是个人感觉表达式太长改动起来就会费力些,而且多个表达式如果其结果范围有交集,那么我们就有优化的空间。

    最终推荐:

    ^([1-9]([0-9]{0,7})|([0]))(\.[0-9]{1,2})?$

    若使用的过程中发现错误,请指正,在此感谢!笔者正则表达式也非常之菜,此篇文章只是兴趣使然又去看了下语法的产物,又去。。语法不好记。

    4.demo下载

    下载链接: http://download.csdn.net/detail/wang124454731/9853136

    有许多写的过程中的表达式我没有删掉,仅注释掉了,可见写个金额正则表达式并不难,有兴趣可以自己练练手。

    自定义整数位数、小数点位数可见下篇 http://blog.csdn.net/wang124454731/article/details/72865939

    展开全文
  • ^[1-9]\d*\,\d*|[1-9]\d*$ 必须为数字,但是允许小数点

    ^[1-9]\d*\,\d*|[1-9]\d*$ 必须为数字,但是允许小数点

    展开全文
  • 一、代码 {  pattern: /^[0-9]+\.[0-9]{2}$/,  message: "小数点后保留两位",  trigger: "blur" } 二、规则 转载于:https://www.cnblogs.com/heroljy/p/11326382.html...
  • 正则表达式0到10两位小数验证

    千次阅读 2019-06-22 12:08:40
    function saveDiscounts() { var pattern = /^(0|[1-9]\d{0...//0到100之间两位小数点验证 $("[name=‘dis’]").each(function () { var val = this.value; console.info(val); if (pattern.test(val)) { cons...
  • c#使用正则表达式验证两位小数,程序完全可以运行,方便大家开发和调试
  • 常用正则表达式大全 (转)

    万次阅读 多人点赞 2013-01-24 09:12:25
    网上找到的常用正则表达式,留着以后可能用得上,正则表达式实在是不好写,只好拿来主义了,在Delphi中没有自己带有正则表达式的组件,靠第三方了,都说PerlRegEx 是首选, 去这里下载,官方网站: ...
  • 判断正整数的正则表达式

    万次阅读 2019-07-01 14:48:49
    正数的正则表达式(包括0,小数保留两位):^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*)|0)$ 正数的正则表达式(不包括0,小数保留两位):^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$ 正...
  • 正则表达式的概念 正则表达式(英语:Regular Expression,在代码中常简写为regex)。 正则表达式是一个字符串,使用单个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则...
  • C#正则表达式验证输入的是否是可计算小数 关键是正则表达式写法,这样做: string validPattern = "^[0-9]+(.[0-9]+)?$";//匹配的类型有:0,0.0,0.00...,00.0.0.00 string inValidPattern1="^...
  • 正则表达式验证decimal

    千次阅读 2019-04-07 18:29:15
    在做decimal验证的时候,找了好多人发的正则表达式,都验证不通过,最后发现以下验正则表达式亲测可用 ^[1-9](\\d{0,9})((\\.\\d{1,2})?)$ 验证规则说明 对于decimal(10,2)的验证规则 {0,9}表示10位整数 {1,2}表示...
  • 刚才在网上看到了一些比较全的正则表达式,果断收入囊中。常用符号说明^ 匹配输入字符串的开始位置 $ 匹配输入字符串的结束位置 * 匹配前面的子表达式零次或多次。例如,zo 能匹配 “z” 以及 “zoo”。 等价于{...
  • <script type="text/javascript"> alert(is_decimal(5552.00));...//正则表达式,验证2位小数 function is_decimal(number){ var reg= /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/ ; return ...
  • Decimal类型: decimal(a,b),其中a代表小数点左右最多有几位...1、在js中使用正则表达式验证decimal类型使用/^\d{1,2}(\.\d{1,2})?$/gi.test(需要验证的变量); 第一个1和2表示,小数点左边可以有1位或者2位,超过...
  • 正则表达式是我们经常要用到的检验字符串的是否合法的一个技术点,正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中...
  • 正则表达式 验证数字格式 非负数 小数点后保留两位 ,正则式如下: ^(([1-9]+)|([0-9]+\.[0-9]{1,2}))$ 测过了。非常准确。附上js的判断方法:   function checkMoneyFormat(val){  var reg = /^(([1-9]+)|...
  • 正则表达式的替换技巧

    千次阅读 2019-07-10 15:04:32
    正则表达式应用——替换指定内容到行尾 正则表达式应用——数字替换 正则表达式应用——删除每一行行尾的指定字符 正则表达式应用——替换带有半角括号的多行 正则表达式应用——删除空行 正则表达式应用——...
  • JS正则表达式完整版

    万次阅读 多人点赞 2018-07-18 23:19:56
    第一章 正则表达式字符匹配攻略 1 两种模糊匹配 2. 字符组 3. 量词 4. 多选分支 5. 案例分析 第1章 小结 第二章 正则表达式位置匹配攻略 1. 什么是位置呢? 2. 如何匹配位置呢? 3. 位置的特性 4. 相关...
  • 整数,小数及常用的正则表达式

    万次阅读 2011-01-04 20:32:00
    匹配中文字符的正则表达式: [/u4e00-/u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):[^/x00-/xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII...
1 2 3 4 5 ... 20
收藏数 19,647
精华内容 7,858
关键字:

正则表达式验证小数