【问题标题】:Regular Expression for Money formatMoney 格式的正则表达式
【发布时间】:2014-05-07 10:52:34
【问题描述】:

我写了一个正则表达式为

^\s*(?=.*[1-9])\d*(?:\.\d{1,3})?\s*$

对于接受一个点的货币格式,但我也需要接受逗号。那么如何修改上面接受逗号的正则表达式呢?

示例:1,20,000.000 2,000.000 3,30,30,000.000

【问题讨论】:

    标签: javascript asp.net


    【解决方案1】:

    修改为:

    ^\s*(?=.*[1-9])\d+[,\.\d]+$
    

    【讨论】:

    • 嗨,阿米特,当我将价值设为 1,20,000.000 时,它失败了
    • 为什么不简单地使用 "([\d\.,]*)" 它将匹配所有数字集 [0-9] 以及点和逗号。
    • @smirnov,该正则表达式将匹配 .,.,.,
    【解决方案2】:

    试试 "(\d{1,3}[,.])+\d{3}"

    string pattern = @"(\d{1,3}[,.])+\d{3}";
    Regex r = new Regex(pattern, RegexOptions.None);
    string s = "1,20,000.000 2,000.000 3,30,30,000.000";
    
    foreach (Match m in r.Matches(s))
    {
        Console.WriteLine(m.Value);
    }
    

    演示:http://dotnetfiddle.net/lTaBbV

    【讨论】:

      猜你喜欢
      • 2015-05-09
      • 1970-01-01
      • 2020-06-24
      • 2016-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-04
      • 1970-01-01
      相关资源
      最近更新 更多