金额正则表达式

用一个正则表达式来检查输入的"钱"是否形式正确.
    有四种钱的表示形式我们可以接受:"10000.00" 和 "10,000.00", 和没有 "分" 的 "10000" 和 "10,000": 
  ^[1-9][0-9]*$ 
  这表示任意一个不以0开头的数字,但是,这也意味着一个字符"0"不通过,所以我们采用下面的形式: 
  ^(0|[1-9][0-9]*)$ 
  一个0或者一个不以0开头的数字.我们还可以允许开头有一个负号: 
  ^(0|-?[1-9][0-9]*)$ 
  这表示一个0或者一个可能为负的开头不为0的数字.OK,让我们不要这么严格了.让用户以0开头好了.把负号的匹配也去掉,因为钱总不能是负的吧.下面我们要加的是说明可能的小数部分: 
  ^[0-9]+(.[0-9]+)?$ 
  必须说明的是,小数点后面至少应该有1位数,所以"10."是不通过的,但是 "10" 和 "10.2" 是通过的. 
  ^[0-9]+(.[0-9]{2})?$ 
  这样我们规定小数点后面必须有两位,如果你认为太苛刻了,可以这样: 
  ^[0-9]+(.[0-9]{1,2})?$ 
  这样就允许用户只写一位小数.下面我们该考虑数字中的逗号了,我们可以这样: 
  ^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$ 
  "1到3个数字,后面跟着任意个 逗号+3个数字 " 很简单,不是吗?但是让我们使得逗号成为可选,而不是必须: 
  ^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$ 
  这就是最终结果了,别忘了"+"可以用"*"替代如果你觉得空字符串也可以接受的话(奇怪,为什么?)最后,别忘了在用函数时去掉去掉那个反斜杠,一般的错误都在这里.OK了,当你的验证完成后,用str_replace(",", "", $money)把逗号去掉,然后把它的类型设为double,这样我们可以用它进行计算.

时间: 2024-08-28 13:44:18

金额正则表达式的相关文章

网页登录和注册页面常用的正则表达式

用户名正则表达式:  字母/数字/[email protected]在内的6-20位 var userName = /^[[email protected]]{6-20}$/; 手机号码正则表达式: var reg_mobile = /^0?(1[3-9][0-9])[0-9]{8}$/; 密码正则表达式: var reg_pwd = /^[[email protected]]{6-20}$/; 交易密码正则表达式: var deal_pwd = /^[0-9]{6}$/var deal_pwd

博客目录[2016-3-31更新]

C# 01.Windows下批量设置SVN用户组权限 02.侦听Windows文件夹变更事件 03.ASP.NET 系统支持数据库访问设计 04.C# webrequest 抓取数据时,多个域Cookie的... 05.Windows Server2008通过命令行方式添加防火墙... 06.JqueryDemoTools-用于整理jQueryDemo 07.visual studio2010复制粘贴源代码到Word时... 08.NPOI 通用导出数据到Excel 09.在 .NET 中开发基

js金额校验,js正则表达式,包含正负,小数点后两位

js金额校验,js正则表达式,包含正负,小数点后两位,js代码如下: function isMoney(s) {        //金额 只允许正数        //var exp = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;         //金额 允许正(+)负数        //var exp = /(^([+-]?)[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|

js-处理金额(正则表达式)

function checkRates(str){ var re = /^(([1-9][0-9]*\.[0-9][0-9]*)|([0]\.[0-9][0-9]*)|([1-9][0-9]*)|([0]{1}))$/; //判断字符串如果是整数不能以0开头后面加正整数,如果是浮点数整数部分不能为两个0:如00.00,如果是整数, var Sure; if (!re.test(str)){ Sure =0; }else{ Sure =1; } return Sure; } alert(check

正则表达式-校验金额

任意正数,不超过两位小数 /^(([1-9][0-9]*)|(([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2})))$/ 如果想确定整数位,把上面的*换成{1,n} .当n等于12时 ,上面的表达式表示整数位不能超过13. 以上确保了不能有空格,不能英文和特殊字符 原文地址:https://www.cnblogs.com/anzs/p/9570166.html

正则表达式基础、原理及优化

前言 正则表达式使用单个字符串来描述.匹配一系列匹配某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些匹配某个模式的文本.简单说就是一个特殊的字符串去匹配一个字符串.定义了一些规则,用于匹配满足这些规则的字符串. 对于正则表达式应该很多人第一感觉就是很难,完全没有规律,看不懂. 我觉得可能有以下几个原因: 1.读不懂. 各种不同的字符组合一起,难以理解.确实,对于熟悉正则表达式的人来说,一个稍微长点的正则表达式想要理解起来,可能也要花费一定的功夫.可读性差是正则表达式的

前端开发中经常使用到的20个正则表达式

1 . 校验密码强度 密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间. ^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ 2. 校验中文 字符串仅能是中文. ^[\\u4e00-\\u9fa5]{0,}$ 3. 由数字.26个英文字母或下划线组成的字符串 ^\\w+$ 4. 校验E-Mail 地址 同密码一样,下面是E-mail地址合规性的正则检查语句. [\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$

常用的js正则表达式

正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑.熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升. 下面是一些,在前端开发中经常使用到的正则表达式. 1 . 校验密码强度 密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间. ^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ 2. 校验中文 字符串仅能是中文. ^[\\u4e00-\\u9fa5]{0,}$

20个正则表达式

正则表达式经常被用于字段或任意字符串的校验,如下面这段校验基本日期格式的JavaScript代码: var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/; var r = fieldValue.match(reg); if(r==null)alert('Date format error!'); 1 . 校验密码强度 密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间. ^(?=.\d)(?=.[a-z])(?=.*[A