如何用Regex检查有效小数点?

时间:2014-03-14 05:11:59

标签: php regex preg-match

如何使用以下字符串检查号码是否有效。

最后2位数可能包含十进制值,也可能不包含。

下面是我已经尝试使用preg_match但无法取得任何成功的代码

$newPrice = "2,264.00"; or //  $newPrice = "264.00"; 

 if (!preg_match('/^[+-][0-9]+(\,[0-9]+)?%?$/', $newPrice))
{                
    echo "not valid";
 }else{                    
       echo "valid";
}
exit();

以上两种价格均按照允许的格式正确。

3 个答案:

答案 0 :(得分:6)

正则表达式有3个部分;

[0-9]{1,3}     1-3 digits
(,[0-9]{3})*   An optional repeated part of a comma + 3 digits
(\.[0-9]{2})?  An optional part of a decimal dot and 2 digits

这可以写成;

/^[0-9]{1,3}(,[0-9]{3})*(\.[0-9]{2})?$/

答案 1 :(得分:1)

试试这个

^[+-]?[\d\,]+\.?\d+?

这将匹配以下值:

222,222,264.00
+2,424,24.34
-264
264.00

demo

答案 2 :(得分:0)

使用此正则表达式:

[0-9,]+(?:\.[0-9]*)?

Regular expression visualization

Debuggex Demo