用一个正则表达式来检查输入的"钱"是否形式正确.
有四种钱的表示形式我们可以接受:"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,这样我们可以用它进行计算.
- 浏览: 150439 次
- 性别:
- 来自: 深圳
-
文章分类
最新评论
发表评论
-
javascript 怎样把拼接起来的<tr><td></td></tr>插入到一个table
2014-12-15 00:45 0function addcolumns(selecedAll ... -
window.showModalDialog基础
2014-12-15 00:37 780基本知识 l showModalDialog() (I ... -
js中数组(Array)的排序(sort)注意事项
2014-06-24 19:54 666http://www.cnblogs.com/yjmyzz/ ... -
Javascript的各种排序算法实现,转自某位牛人,具体地址已不记得
2014-06-24 19:53 448http://www.cnblogs.com/iceidea ... -
js 二维数组 定义和初始化 三种方法
2014-03-16 11:13 755方法一:直接定义并且初始化,这种遇到数量少的情况可以用 ... -
自己封装js的ArrayList类
2014-03-16 10:41 441众所周之,js是没有ArrayList类的,但是js自带了A ... -
JS Map 简单实现。
2014-03-16 10:37 536/* * MAP对象,实现MAP功能 * * ... -
不让TD中的文本撑开报表
2014-03-12 21:27 894我经常会遇到这样的问 ... -
JS中怎么判断数组中是否包含某一元素
2014-03-02 10:35 795=========自己写的方法 Array.protot ... -
js处理定义二维数组的方法——原创
2014-03-02 10:10 766... -
跑马灯效果
2013-07-18 18:56 376<marquee direction="le ... -
常用的正则表达式
2013-07-17 17:15 431/** * 判断是否为数字 * * @param ... -
正则表达式的数字实例
2013-07-17 15:02 626验证数字的正则表达式集 验证数字:^[0-9]*$验证n位的 ... -
二级页面导出 会弹出页面解决方法
2013-03-08 19:37 794<!--StartFragment --> &l ... -
JS IE的颜色选择器
2013-02-28 09:38 593安徽电信 :刘佳兴做的,关于调整背景颜色和字体颜色的,在基 ... -
JS 打印
2012-11-29 15:43 754function startPrint(){ facto ... -
IFrame 在BCDL 四川电信 凭证与单据对比表 中应用
2012-11-15 20:18 716--凭证与单据对比表 大致描述 上面一个IFRAME 显示 ... -
IFrame 的使用
2012-10-31 09:08 753--iframe中调用父窗口的js window.pare ... -
javascrip基础知识积累 2
2012-10-30 09:19 752--js parseInt("09") 结 ... -
javascrip基础知识积累 1
2012-10-22 08:50 7761. javaScript 中对函数参 ...
相关推荐
- `\D` 正则表达式匹配任何非数字字符。 - `replace(/\D/g,'')` 替换所有非数字字符为空字符串,即删除这些字符。 **应用场景:** 这种输入控制适用于需要输入纯数字的场景,如年龄、ID 编号等。 --- #### 二、仅...
1. 正则表达式匹配:这是一个动态规划问题,需要设计状态和状态转移方程来判断一个字符串是否符合给定的正则表达式。 2. 最小路径和:同样是一个动态规划问题,可以使用自底向上的方式计算二维矩阵中每个元素到达...
这个正则表达式可以匹配不以0开头的数字、最多两位小数的金额格式。这个验证在实际使用中十分有用,能确保用户输入的格式正确。 4. 去除千分位中的逗号 `delcommafy`函数用于去除数字字符串中的千分位逗号。这一步...
1. **正则表达式**:使用正则表达式`^\d+\.?\d+$`来匹配合法的数字字符串(包含可选的小数点)。 2. **错误提示**:如果不匹配,则显示错误提示,并取消表单验证过程中的下一步操作。 ### 总结 以上介绍了几种限制...
在MATLAB中,strsplit()函数可以用来实现字符串分割,但对于数字这种特殊需求,可能需要借助strfind()或regexp()函数,后者特别支持正则表达式操作,能有效满足数字分割的需求。 实际应用中的程序可能包含以下步骤...
通过上述解析,我们可以看到,这个Java程序巧妙地结合了数字格式化、字符串处理和正则表达式技术,实现了人民币数字到汉字大写的高效转换。这对于开发涉及财务处理的软件系统来说,是一个非常实用且功能强大的工具。...
这一步可能需要编写特定的解析规则或利用正则表达式。最后,将这些信息存储到数据库或文件中,以便后续的查询与分析。 6. 查询系统开发:为了实现发票信息的快速查询,需要构建一个用户界面,用户可以通过输入...
使用正则表达式`[^\d.]`匹配所有非数字和非小数点字符,并将其替换为空字符串,从而实现清除操作。 4. **确保小数点唯一性**: - 移除开头的小数点: ```javascript obj.value = obj.value.replace(/^\./g, "")...
1. **输入验证**:通过正则表达式或者自定义的输入过滤器,确保用户只能输入数字。对于整数部分和小数部分,可以分别进行验证,例如,整数部分允许的最大长度,小数部分允许的最大位数。 2. **实时格式化**:当用户...
这涉及到字符串处理、正则表达式和数值检查等技术。 4. **多线程**:如果要考虑并发用户,ATM系统可能需要使用Java的多线程特性,确保同一时间只有一个用户可以进行操作,以防止数据冲突。 5. **IO流**:为了读取...
这通常通过正则表达式匹配和黑名单过滤来实现。 4. **业务逻辑验证**:在确保参数基础合法性后,解析器会执行特定的业务逻辑检查,如检查交易金额是否超过设定的限额,或者验证用户是否有足够的余额进行转账。 5. ...
3. **后处理**:识别结果可能包含错误,可以结合其他工具或算法进行后处理,如使用正则表达式匹配、人工校对等。 总结,Tesseract 3.05.01 exe安装版为用户提供了简单快捷的OCR解决方案,尤其适合那些希望快速部署...
函数内部通过正则表达式`/[^\d-]/gi`来替换掉所有非数字和非负号的字符,确保输入框内的值只包含数字和负号。然后检查替换后的值`v`是否为`0`,如果是,则将输入框的值清空;如果不是,则将处理后的值赋值给输入框。...
然后,通过正则表达式检查并确保输入值中没有两个或多个连续的小数点出现,因为这不符合浮点数的标准格式。 为了进一步规范,代码中还包含了将连续的小数点替换为特定字符序列"$#$",然后又将这个特殊字符替换为空...
最后,如果格式化规则中有千分位逗号,函数会使用正则表达式来插入逗号。这一步是通过`while`循环不断检查字符串是否符合千分位分隔的模式,如果符合,则在适当的位置插入逗号。正则表达式`(-?\d+)(\d{"+len+"})`...