美文网首页
前端充值数目正则表示

前端充值数目正则表示

作者: 康乐芳华 | 来源:发表于2019-05-17 13:57 被阅读0次

    不得不说 正则表达式可视化 是真的不错, 研究正则的时候, 这个网站是很好的帮手。

    现在前端页面有一个金额输入框, 需要对输入的金额进行校验。如果校验不通过, 禁用提交的按钮。
    校验的规则大体如下:

    1 不能输入非正数, 比如 -1 -1.3 0 0.233
    2 充值金额最小是一角 0.1 最小得单位是分
    3 可以输入小数,由 2 可知小数点最多在百分位
    4 最大的充值金额是 999999.99

    首先大致划分一下,不考虑 .11 这种简写的情况下 金额的第一位是可以出现 0 的, 但是仅仅限于 0.11 0.1 0.17 这种小数。而 011 01.22 000 这种事不合法的。
    对于后一种 正则可以这样写: /^([1-9]\d{0,5})(\.\d{1,2})?$/g
    第一位一定是 1-9 之间的数字,紧接着后面的数字可以是 0-9 之间的任意一个,重复 0-5 次, 因为第一位已经占了一位了。
    后面的小数点可以没有, 有的话 [0-9] 重复最少一次(小数点之后必须有数字), 最多两次 (保证最小单位是分)

    1.png

    对于小数点, 第一位肯定是 0, 十分位最小是 1 正则:/^0\.[1-9]{1,2}$/g
    这种写法的话, 会认为 0.10 是非法的, 其实也没有必要在最后补上 0

    2.png
    如果接受 0.10 这种 ,可以这样写 /^0\.[1-9]\d?$/g
    3.png

    最后将两者(1 & 3) 结合起来 /^([1-9]\d{0,5}(\.\d{1,2})?|0\.[1-9]\d?)$/g

    4.png

    如果你认为 .11 这种也是合法的数字 可以稍加修改 /^([1-9]\d{0,5}(\.\d{1,2})?|0?\.[1-9]\d?)$/g

    5.png

    相关文章

      网友评论

          本文标题:前端充值数目正则表示

          本文链接:https://www.haomeiwen.com/subject/peunaqtx.html