Regex 用于价格验证的正则表达式

Regex 用于价格验证的正则表达式,regex,validation,Regex,Validation,需要具有以下内容的正则表达式: 小数点(.)前最多8位 小数点后最多4位 小数点是可选的 最大有效小数位数为小数点前8位,小数点后4位 所以9999999.9999 我尝试过的常规rexpression^\d{0,8}[.]?\d{1,4}$在123456789中失败 还有更多。表示如果小数点不可用,则取8位数以上 此处测试: 非常感谢 您可以尝试以下方法: ^\d{1,8}(?:\.\d{1,4})?$ 或 如果您不想将零作为第一个数字 如果需要,可以允许此操作:(.1234) 您可以将整个

需要具有以下内容的正则表达式:

  • 小数点(.)前最多8位
  • 小数点后最多4位
  • 小数点是可选的
  • 最大有效小数位数为小数点前8位,小数点后4位 所以9999999.9999

    我尝试过的常规rexpression^\d{0,8}[.]?\d{1,4}$在123456789中失败 还有更多。表示如果小数点不可用,则取8位数以上

    此处测试:

    非常感谢

    您可以尝试以下方法:

    ^\d{1,8}(?:\.\d{1,4})?$
    

    如果您不想将零作为第一个数字

    如果需要,可以允许此操作:(.1234)


    您可以将整个十进制设置为可选的

    以上任何一项都不适用于我。 只有这个对我有用

    ^([0-9]{0,2}((.)[0-9]{0,2}))$
    
    1-(\$+[1-9])
    2-(\£+[1-9]) 您可以将此表达式用于完整的价格数字。

    我使用此表达式:

    ^[1-9]\d{0,7}(\.\d{1-4})$
    
    ^=字符串的开头

    [1-9]=至少字符串必须以1到9之间的数字开头

    \d{0,7}=可选或最大7乘以d(数字:介于0和9之间的数字)

    ()=创建一个类似子字符串的组

    =需要一个

    \d{1-4}=数字最多重复4次


    $结束

    感谢您的快速响应!我发现.12345678的输入失败。它应该只需要.1234。@user2338652,如果您希望该值在小数点后最多4位。如果该值大于4,则不应接受该输入。这可能会导致舍入错误。如果输入与您的条件不符,则不接受该输入。和有效性=match@user2338652仅供参考,您接受的答案在
    .123456789
    .Hmm:)上也“失败”,但它失败了,但请查看答案已被修改,并在下面添加了一条注释。@user2338652当然,答案已修改,现在几乎与此答案的第一部分相同:)您需要在句点(点)之前加一个反斜杠:即
    (\。\d{1,4})?
    否则,您将接受包含其他数字的任何字符。价格不能为负数?
    ^\d{0,8}(\.\d{1,4})?$
    
    ^([0-9]{0,2}((.)[0-9]{0,2}))$
    
    ^[1-9]\d{0,7}(\.\d{1-4})$