【问题标题】:Make decimal digits mandatory if dot entered in regex validation如果在正则表达式验证中输入点,则强制十进制数字
【发布时间】:2014-07-14 17:43:19
【问题描述】:

如果正则表达式验证是^\d{0,10}(\.\d{0,2})?$,则小数点后最多需要两位数字,这是可选的。

但它允许“100”。还。由于用户没有输入任何小数点后的数字,如果输入点,如何验证和制作小数位

【问题讨论】:

  • 提示:您认为{0,2} 中的0 是什么意思?
  • 您是否知道正则表达式也匹配空字符串(可能需要也可能不需要)?
  • 知道了,我必须做到 1,2
  • 也可以有空值

标签: regex


【解决方案1】:

如果您想在提供句点的情况下要求小数点后 2 位数字,则使您的正则表达式看起来像:

/^\d{0,10}(\.\d{2,})?$/

\d{2,} 表示至少需要两个数字 - 后跟任意数量的数字(这就是表达式是开放式的原因,例如 2, - 如果您需要两个且仅两个数字而不是同时提供上下限:{2,2}

【讨论】:

  • 要求最多(而非最少)2 位数字。
  • 所以,“两位也只有两位”是\d{2,2}
  • 他没有说必须至少有两位数。
【解决方案2】:

它应该可以工作

^\d{0,10}(\.\d\d?)?$

Online demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-02
    相关资源
    最近更新 更多