c# (Xamarin) 中的正则表达式货币格式

Regex Currency formatting in c# (Xamarin)

在文本字段中输入货币值时,在正则表达式的帮助下,我如何在用户在数字文本字段中输入值时自动显示逗号。

例如:

1美元

15 美元

153 美元

1,530 美元

15,306 美元

1,53,068 美元

随着我不断插入数字,逗号应该会自动被替换。

您需要两步更换程序:

  1. 通过替换

    删除到目前为止插入的所有逗号
    ,
    

    空字符串。

  2. 在右边位数能被三整除且左边字符不是$:

    的所有位置插入新逗号
    (?<!$)(?=(?:\d{3})+$)
    

    只需将模式应用于没有逗号的数字,并用 , 替换模式。

    这里是 Demo of the second stage:

    输入:

    
    
    3
    30
    306
    3068
    30683456543456
    

    输出:

    
    
    3
    ,530
    ,306
    3,068
    ,530,683,456,543,456
    

编辑: 演示是 PCRE,但我尽量不使用 C# 中不可用的任何功能。它似乎也有效 here