带逗号的整数的正则表达式模式

时间:2015-05-06 07:59:52

标签: regex

模式

$test =  preg_match('/^(?=.\d)\d(?:\.\d\d)?$/', $_float1);

匹配

0.25
2.55
1253.36
45.55

如何修改此接受整数部分之间的逗号? 如1,253.36?

3 个答案:

答案 0 :(得分:2)

您可以使用此模式:

/^\d*(,?\d{3})*(\.\d+)?$/

答案 1 :(得分:1)

您可以使用此正则表达式:

^\d+(?:,\d{3})*(?:\.\d\d)?$

RegEx Demo

答案 2 :(得分:1)

我会使用这个:

/^\d{1,3}(?:(,?)\d{3}(\1\d{3})*)?(?:\.\d{2})?$/

说明:

  • ^\d{1,3}:以1到3位开头
  • (?:(,?)\d{3}(\1\d{3})*)?:[可选]重复XXX,XXX个模式(仅限其中一个,排除11,111111之类的数字)
  • (?:\.\d{2})?:[可选]正好两位小数
  • $:那是所有人

匹配

1 - 12 - 123 - 1234 - 12345
1,234 - 12,345 - 123,456 - 1,234,567
1.23 - 12.34 - 123.45 - 1234.56 - 12345.67
1,234.56 - 12,345.67 - 123,456.78 - 1,234,567.89

不匹配:

.1 - .12 - .123
1.2 - 1.234 - 1.2345
12,34 - 123,45 - 1,2345 - 1,2,345 - 1234,567
12,34.56 - 123,45.67 - 1,2345.78