Swift 货币的正则表达式-从计数限制中排除逗号
我正在我的应用程序中使用以下正则表达式:Swift 货币的正则表达式-从计数限制中排除逗号,swift,regex,nsregularexpression,Swift,Regex,Nsregularexpression,我正在我的应用程序中使用以下正则表达式: ^([0-9 |(\\,)]{0,10})?(\\[0-9]{0,2})?$ 因此,它允许小数点前10个字符,小数点后2个字符。 但我插入了一个额外的功能,即在键入时将文本字段格式化为货币。因此,如果我有1234567,它在格式化后变成1234567。当我输入10个字符而不是10个数字时,正则表达式失败。理想情况下,正则表达式应该在计算10时忽略逗号 我也尝试过这个^([0-9 |(\\,)]{0,13})?(\\.[0-9]{0,2})$,但它似乎不是
^([0-9 |(\\,)]{0,10})?(\\[0-9]{0,2})?$
因此,它允许小数点前10个字符,小数点后2个字符。
但我插入了一个额外的功能,即在键入时将文本字段格式化为货币。因此,如果我有1234567
,它在格式化后变成1234567
。当我输入10个字符而不是10个数字时,正则表达式失败。理想情况下,正则表达式应该在计算10时忽略逗号
我也尝试过这个^([0-9 |(\\,)]{0,13})?(\\.[0-9]{0,2})$
,但它似乎不是正确的方法。
有谁能帮我得到一个合适的正则表达式而不是使用这个调整。你可以使用
"^(?:,*[0-9]){0,10}(?:\.[0-9]{0,2})?$"
或者,如果小数部分中的
后面必须有一个数字,则使用
"^(?:,*[0-9]){0,10}(?:\.[0-9]{1,2})?$"
看。(?:,*[0-9]){0,10}
部分是执行作业的部分:它匹配任何0+,
字符,后跟一个数字0到10次。如果,
也可以出现在
之前,则在((?:,*[0-9]){0,10}之后添加,*
详细信息
^
-字符串的开头
(?:,*[0-9]){0,10}
-0到10次出现的0+逗号后跟一个数字
(?:\.[0-9]{0,2})
-可选序列:
\.
-一个句点
[0-9]{0,2}
-0到2个数字(如果
后面必须有一个数字,请使用[0-9]{1,2}
)
$
-字符串结束
您的意思是要在整数部分允许任何数量的逗号吗?类似于“^((?:,*[0-9]){0,10}”)(?:\\.[0-9]{0,2})?$”
?请检查它。@WiktorStribiżew谢谢你,它就像一个符咒!这正是我在寻找的话题,但货币汇率只允许2位小数是非常有限的,根据货币的表示方式,您可能会得到显示为0.00的汇率,即ABC/DEF vs DEF/ABCT谢谢您的详细描述