Regex 货币正则表达式
我需要在Angular中获得货币正则表达式的帮助。 我不太擅长正则表达式 我想要的是一个正则表达式: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
(?=.*?\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
或|
-一到三个数字,第一个数字为非零,然后是逗号的0个或多个重复,然后是三个数字[1-9]\d{0,2}(?:,\d{3})*
-或|
-1+位,第一位为非零[1-9]\d*
-一个可选的(?:\。\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好的,非常感谢!!我将试试这个^_^