zoukankan      html  css  js  c++  java
  • 单行 JS 实现移动端金钱格式的输入规则

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

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

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

    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(/^0d{1}/g, '0');
    }

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

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

  • 相关阅读:
    C计算double能精确到多少位
    C计算int最大值、最小值
    AndroidStudio右键new无activity
    java替换特殊字符串 $
    lamda表达式排序
    docker toolbox 设置镜像加速
    tomcat优化
    nginx配置相关
    SQL 优化
    elasticsearch 概念初识
  • 原文地址:https://www.cnblogs.com/nzbin/p/6742528.html
Copyright © 2011-2022 走看看