Angular 中的货币正则表达式
Currency regex in Angular
我需要 Angular 中货币正则表达式的帮助。
我不太擅长正则表达式。
我想要的是一个正则表达式:
- 允许逗号作为数字组分隔符,但不能在开头或结尾。
- 只允许保留 2 位小数点后四舍五入的数字。
- 只允许有一个小数点并且不能在开头或结尾。
- 不允许 0.00 或 0。
这是我的正则表达式:
(?=.*?\d)^$?(([1-9]\d{0,2}(,\d{3})*)|\d+)?(\.\d{1,2})?$
但是这个正则表达式允许 0.00
请哪位大侠帮忙谢谢
期望的输出
有效:
1,000.00
1000
0.01
24
1,234,000
11,222,245.22
无效:
,000.00
,,,,,9
0
0.00
1,22,2,
1,000.
123,123,22
000,300.00
000300.00
000,123
000,000
00,000
0,000
您可以使用
/^(?![0,.]+$)(?:0|[1-9]\d{0,2}(?:,\d{3})*|[1-9]\d*)(?:\.\d{1,2})?$/
详情
^
- 字符串开头
(?![0.,]+$)
- 如果有一个或多个 0
、,
或 .
字符直到字符串结尾[=46=,则匹配失败的否定前瞻]
(?:0|[1-9]\d{0,2}(?:,\d{3})*|[1-9]\d*
- 三种选择之一:
0
- 零
|
或
[1-9]\d{0,2}(?:,\d{3})*
- 一到三位数字,第一个是 non-zero,然后是逗号的 0 次或多次重复,然后是三位数字
|
- 或
[1-9]\d*
- 1+ 位,第一个是 non-zero,
(?:\.\d{1,2})?
- .
的可选序列,然后是 1 或 2 个数字
$
- 字符串结尾。
我需要 Angular 中货币正则表达式的帮助。 我不太擅长正则表达式。
我想要的是一个正则表达式:
- 允许逗号作为数字组分隔符,但不能在开头或结尾。
- 只允许保留 2 位小数点后四舍五入的数字。
- 只允许有一个小数点并且不能在开头或结尾。
- 不允许 0.00 或 0。
这是我的正则表达式:
(?=.*?\d)^$?(([1-9]\d{0,2}(,\d{3})*)|\d+)?(\.\d{1,2})?$
但是这个正则表达式允许 0.00
请哪位大侠帮忙谢谢
期望的输出
有效:
1,000.00
1000
0.01
24
1,234,000
11,222,245.22
无效:
,000.00
,,,,,9
0
0.00
1,22,2,
1,000.
123,123,22
000,300.00
000300.00
000,123
000,000
00,000
0,000
您可以使用
/^(?![0,.]+$)(?:0|[1-9]\d{0,2}(?:,\d{3})*|[1-9]\d*)(?:\.\d{1,2})?$/
详情
^
- 字符串开头(?![0.,]+$)
- 如果有一个或多个0
、,
或.
字符直到字符串结尾[=46=,则匹配失败的否定前瞻](?:0|[1-9]\d{0,2}(?:,\d{3})*|[1-9]\d*
- 三种选择之一:0
- 零|
或[1-9]\d{0,2}(?:,\d{3})*
- 一到三位数字,第一个是 non-zero,然后是逗号的 0 次或多次重复,然后是三位数字|
- 或[1-9]\d*
- 1+ 位,第一个是 non-zero,
(?:\.\d{1,2})?
-.
的可选序列,然后是 1 或 2 个数字$
- 字符串结尾。