【问题标题】:Regular Expression of numeric input [duplicate]数字输入的正则表达式[重复]
【发布时间】:2015-05-10 16:34:30
【问题描述】:

我想要一个正则表达式来验证 numeric(3,2) 的这个输入

喜欢 2.00、7.96 或 9.27

我应该尝试什么?

【问题讨论】:

  • 我不确定,你到底是什么意思...你想要一个只接受浮点值的正则表达式吗?
  • 是的,@MartinBeseda 但是一个整数 (2.36)
  • 哪种正则表达式风格?

标签: regex


【解决方案1】:
^\d\.\d{2}$

这将完全匹配数字,格式为点前一位数和点后两位数。

^\d+\.\d{2}$

这将匹配数字,其中点之前是任意数字,之后是两位数字。

^\d+\.\d+$

这个会匹配数字,点前后的位数完全是任意的。


符号说明

^ - 行首

$ - 行尾

+ - 前面的符号必须出现一次或多次

\d - 一个十进制数

. - 转义的点符号 - 否则为特殊字符

【讨论】:

    【解决方案2】:
    ^\d+?\.\d{2}$
    

    这将查找 d.dd,其中第一个 d 是可选的(例如,如果他们只输入 .12)。末尾的 $ 表示字符串的结尾,因此如果他们开始在字符串末尾输入字母或其他字符,它将不匹配,并且您可能会因输入无效而引发错误。

    【讨论】:

    • \d+ 将匹配多个数字值,但如果您想要 numeric(3,2),则可以删除 + 以将其限制为一位数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-26
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多