Regex 货币正则表达式

Regex 货币正则表达式,regex,angular,currency,Regex,Angular,Currency,我需要在Angular中获得货币正则表达式的帮助。 我不太擅长正则表达式 我想要的是一个正则表达式: 允许逗号作为数字组分隔符,但不能在开头或结尾 只允许在小数点后四舍五入两位数字 只允许一个小数点,不允许在开头或结尾 不允许0.00或0 这是我的正则表达式: (?=.*?\d)^\$?(([1-9]\d{0,2}(,\d{3})*)|\d+)?(\.\d{1,2})?$ 但是这个正则表达式允许0.00 这里有人请帮忙,谢谢 期望输出 有效期: 1000.00 一千 0.01 二十四 1234

我需要在Angular中获得货币正则表达式的帮助。 我不太擅长正则表达式

我想要的是一个正则表达式:

  • 允许逗号作为数字组分隔符,但不能在开头或结尾
  • 只允许在小数点后四舍五入两位数字
  • 只允许一个小数点,不允许在开头或结尾
  • 不允许0.00或0
  • 这是我的正则表达式:

    (?=.*?\d)^\$?(([1-9]\d{0,2}(,\d{3})*)|\d+)?(\.\d{1,2})?$
    
    但是这个正则表达式允许0.00

    这里有人请帮忙,谢谢

    期望输出

    有效期:

    1000.00

    一千

    0.01

    二十四

    1234000

    11222245.22

    无效:

    ,000.00

    ,,,,,9

    0

    0.00

    1,22,2,

    一千

    123123,22

    000300.00

    000300.00

    000123

    000000

    00000

    你可以用

    /^(?![0,.]+$)(?:0|[1-9]\d{0,2}(?:,\d{3})*|[1-9]\d*)(?:\.\d{1,2})?$/
    

    详细信息

    • ^
      -字符串的开头
    • (?![0.,]+$)
      -如果在字符串末尾有一个或多个
      0
      字符,则会导致匹配失败的负前瞻
    • (?:0 |[1-9]\d{0,2}(?:,\d{3})*|[1-9]\d*
      -三种备选方案之一:
      • 0
        -零
      • |
      • [1-9]\d{0,2}(?:,\d{3})*
        -一到三个数字,第一个数字为非零,然后是逗号的0个或多个重复,然后是三个数字
      • |
        -或
      • [1-9]\d*
        -1+位,第一位为非零
    • (?:\。\d{1,2})
      -一个可选的
      序列,然后是1或2位数字
    • $
      -字符串结束

    不是一个有角度的用户,但可能
    ^\$[1-9]\d{0,2}(?:,\d{3})*(\.\d{2})?$
    会起作用吗?最好提供一些输入和所需信息output@mjrezaee是的,我将尝试提供所需的输出,请稍候。
    /^(?[0.]+$)(?:\d{1,3}(?,\d{3})*\d+(:\.\d{1,2})$/
    ,请参阅。@WiktorStribiżew这是什么(?[0.]+$)是吗?请向我解释一下谢谢。这个“0001230.00”怎么样?我希望这个无效。我仍然不能这样做。教授,我不能投票支持你的答案,因为它仍然接受000000.00 000000.00 00000只需在
    [0.]
    ->
    [0.]中添加一个逗号即可
    你应该很乐意go@unamen我已将这些修复添加到解决方案中。@WiktorStribiżew好的,非常感谢!!我将试试这个^_^