Regex “检查货币”字段仅包含1个句号

Regex “检查货币”字段仅包含1个句号,regex,Regex,有人能帮我编写一个正则表达式来检查货币字符串是否为特定格式-300.00吗 它只能在“.”前后都有数字。然而,我只希望“.”发生一次 因此300.00。或300.0.0无效 问候 ^[0-9]+\.?[0-9]*$ 这意味着,字符串的开头(^),一个或多个数字([0-9]+),可选句点(\.?),然后是0个或多个数字,然后是字符串的结尾。您可以根据需要修改它,例如,允许以句号开头的字符串(将first+更改为*)或强制句号(删除?)。我认为这样做可以:^\d+\.\d+$ 这将匹配一个由一个或

有人能帮我编写一个正则表达式来检查货币字符串是否为特定格式-300.00吗

它只能在“.”前后都有数字。然而,我只希望“.”发生一次

因此300.00。或300.0.0无效

问候

^[0-9]+\.?[0-9]*$

这意味着,字符串的开头(
^
),一个或多个数字(
[0-9]+
),可选句点(
\.?
),然后是0个或多个数字,然后是字符串的结尾。您可以根据需要修改它,例如,允许以句号开头的字符串(将first+更改为
*
)或强制句号(删除
)。

我认为这样做可以:
^\d+\.\d+$


这将匹配一个由一个或多个数字组成的字符串,正好是一个“.”和一个或多个数字。

如果您希望表示一个对货币严格正确的字符串,那么您很可能需要类似于
^\d+\.\d{2}$
,因为您通常用两个小数点表示货币。如果您不挑剔,那么
^\d+\.\d+$
将匹配任何小数位数或
^\d+\.?\d*$
将匹配整数以及任何小数位数的数字。

使用此正则表达式进行匹配-

^\d+\.\d+$

根据@mathew的回答,您可能希望将正则表达式锚定在字符串的开头和结尾(分别为^和$)。根据@eldarerat,您可能希望限制小数点后的位数。您可能还希望在前面允许一个可选的$符号;您可能希望允许用户完全删除美分的组件。因此:

^\$?\d+(\.\d\d)?$ ^\$?\d+(\。\d\d)$ 那是

^ start of string \$? optional dollar sign \d+ at least 1 digit. (\.\d\d)? optional decimal point followed by exactly two digits (you could use \d{2} here as well) $ end of string ^字符串开头 \$? 可选美元符号 \d+至少1位数字。 (\。\d\d)?可选小数点后紧跟两位数字 (您也可以在此处使用\d{2}) $字符串结尾