11

需要具有以下特征的正则表达式:

  1. 小数点 (.) 点前最多 8 位
  2. 小数点后最多4位
  3. 小数点是可选的

最大有效小数为小数点前 8 位和小数点后 4 位 所以 99999999.9999

我尝试过的正则 rexpression ^\d{0,8}[.]?\d{1,4}$失败了 123456789 并且不止于此。表示如果小数点不可用,它会占用 8 位以上的数字。

在这里测试:http ://regexpal.com/

非常感谢提前!

4

6 回答 6

12
^\d{0,8}(\.\d{1,4})?$

您可以将整个小数设为可选

于 2013-07-05T06:34:56.157 回答
8

你可以试试这个:

^\d{1,8}(?:\.\d{1,4})?$

或者

^[1-9]\d{0,7}(?:\.\d{1,4})?$

如果您不想将零作为第一个数字。

如果您愿意,可以允许这样做:(.1234)

^[1-9]\d{0,7}(?:\.\d{1,4})?|\.\d{1,4}$
于 2013-07-05T06:31:48.243 回答
4

以上任何一项都不适合我。只有这对我有用

^([0-9]{0,2}((.)[0-9]{0,2}))$
于 2014-07-17T10:50:58.827 回答
0

1- (\$+. [1-9])
2- (\£+.
[1-9]) 您可以将此表达式用于完整的价格数字。

于 2020-05-19T03:48:44.440 回答
0

我正在使用这个:

^[1-9]\d{0,7}(\.\d{1-4})$

^ = 字符串的开头

[1-9] = 至少字符串必须以 1 到 9 之间的 1 个数字开头

\d{0,7} = 可选或最多 7 次 d(数字:0 到 9 之间的数字)

() = 创建一个像子串一样的组

. = 需要一个。

\d{1-4} = 数字重复最多 4 次

$字符串结尾

于 2020-09-26T20:56:46.377 回答
0

这个正则表达式适用于大多数情况,即使是负价格,

(\-?\d+\.?\d{0,2})

通过以下测试,

9
9.97
37.97
132.97
-125.55
12.2
1000.00
10000.00
100000.00
1000000.00
401395011

如果价格为9.97 美元、9.97 英镑或 9.97 欧元,则将验证9.97移除该符号。

于 2021-07-02T08:33:07.270 回答