+
96
-

php验证整数或小数点的正则表达式问题

php

今天在网上找了个验证整数和小数点的正则,有问题,大家帮我看看

// $accountPrice = $_GET['num'];
// $accountPrice = 111;
// $accountPrice = 1112.;
// $accountPrice = 2324.1;
// $accountPrice = 2324.15;
// $accountPrice = 2324.157;//wrong
// $accountPrice = 0.57;
 
 
if (preg_match('/^[0-9]+(.[0-9]{1,2})?$/', $accountPrice)) {
	echo '整数或小数二位的正则';
}else{
    echo '错';
}


网友回复

+
15
-

你提供的正则表达式有一个小问题:小数点前面的数字部分是匹配的,但小数点本身没有被正确转义。此外,你的正则表达式允许以小数点结尾的数字,这在大多数情况下是不符合预期的。

你可以使用以下正则表达式来匹配整数或最多两位小数的数字:

if (preg_match('/^[0-9]+(\.[0-9]{1,2})?$/', $accountPrice)) {
    echo '整数或小数二位的正则';
} else {
    echo '错';
}

这里的 \. 是转义的小数点,表示匹配一个实际的小数点字符。

示例代码
<?php

$tes...

点击查看剩余70%

我知道答案,我要回答