金钱格式检验属于很普通的需求,记得工作中第一次遇到这个需求的时候,还不太会写正则表达式,搜到了一个类似的解决方案,看着正则的文档改成了自己需要的形式。

但是用户的输入操作是任意的,只是显示提示信息,这种方式虽然可以满足要求,但是感觉不友好。

其实移动端的很多应用在输入金钱时都是屏蔽错误输入,只能输入正确的格式。先看一看金钱格式的输入规则有哪些:

1. 不能输入空白字符及字母
2. 只能输入数字及小数点
3. 首位不能为小数点
4. 小数点只能出现一次
5. 小数点后只有两位
6. 不能输入首位是 0 的多位数

看似很简单的问题,其实要考虑的很周全才可以。但是代码可以写的很简洁,我费了不少心思摸索出来的。对于校验部分确实只需要一行

function moneyFormat(str) {
return str.replace(/[^\d\.]|^\./g, '').replace(/\.{2}/g, '.').replace(/^([1-9]\d*|0)(\.\d{1,2})(\.|\d{1})?$/, '$1$2').replace(/^0\d{1}/g, '0');
}

时间不早了,就写这么多吧,最后贴上我在 CodePen 写的 Demo,希望能帮到有需要的人。

See the Pen moneyFormat by Zongbin (@nzbin) on CodePen.

最新文章

  1. Lrc2srt精灵,增加自定义输出编码
  2. Android 项目中文件夹的说明与作用(转)
  3. 【转】 BSS段 数据段 代码段 堆栈 指针 vs 引用
  4. Mybatis-generator使用和扩展
  5. careercup-数组和字符串1.5
  6. HashMap遍历,推荐使用entrySet()
  7. C语言中,如何通过socket得到对端IP地址
  8. ShapeDrawable 资源
  9. Java Object 对象拷贝
  10. Linux基础学习:目录配置
  11. 八 ip和子网详解
  12. WebDriver与文件系统
  13. 浅谈 js中parseInt函数的解析
  14. BZOJ2557[Poi2011]Programming Contest——匈牙利算法+模拟费用流
  15. VS2008水晶报表变两页(重装系统后)
  16. Docker学习要点记录
  17. Windows7双系统的启动顺序怎样修改?
  18. 【BZOJ 4332】 4332: JSOI2012 分零食 (FFT+快速幂)
  19. Spring Boot☞ 使用Thymeleaf模板引擎渲染web视图
  20. fullpage.js jq全屏滚动插件

热门文章

  1. String 类的实现(3)引用计数实现String类
  2. Web性能优化工具WebPageTest(一)——总览与配置
  3. leetcode中Database题(一)
  4. C#实现rabbitmq 延迟队列功能
  5. java多线程基本概述(一)——线程的基本认知
  6. 为什么不能将客户端的连接请求跳转或转发到本机lo回环接口上?
  7. Mac下安装BeautifulSoup
  8. 第六章 Hibernate关联映射
  9. 海康/大华 IpCamera RTSP地址和格式
  10. java 解析xml文档---通过XmlPullParser解析方式