正则表达式用于价格验证

时间:2013-07-05 06:30:50

标签: regex validation

需要正则表达式,其中包含:

  1. 十进制(。)点前最多8位数
  2. 小数点后最多4位数
  3. 小数点是可选的
  4. 最大有效小数是十进制前的8位和小数后的4位 所以99999999.9999

    我尝试过的常规重复播放 ^ \ d {0,8} [。]?\ d {1,4} $ 失败了123456789 而不仅仅是这个。表示如果小数点不可用,则超过8位数。

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

    许多人提前感谢!

6 个答案:

答案 0 :(得分:9)

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

您可以使整个十进制可选

答案 1 :(得分:6)

你可以试试这个:

^\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}$

答案 2 :(得分:3)

以上任何一项对我都不起作用。 只有这对我有用

^([0-9]{0,2}((.)[0-9]{0,2}))$

答案 3 :(得分:0)

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

答案 4 :(得分: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次数字

$ 字符串的结尾

答案 5 :(得分: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 删除符号。