preg_match函数用于检查货币值

时间:2014-11-14 12:11:41

标签: php regex preg-match

我有一些像

这样的值
£523.22
9454
££45523
741.03
etc

我想从值中删除此£并检查它是否有效vaue以便我可以将它们插入到数据库中 我在preg_match() or similar function for checking currency .y

的帮助下创建了以下表达式
$job_order=(preg_match("/^[£]*[0-9]*(.[0-9]*)?$/",$value) ? str_replace("£","",$value) : '' );

如果$ value =£523.22则返回null。但如果它的741.03正在工作。我不知道这个preg_match有什么问题。 我从.Mer(Merge)文件导入这个值。如果我只是写$ value =£523.22然后它的工作但是当它从文件读取值然后它没有识别英镑符号

3 个答案:

答案 0 :(得分:1)

您可以使用:

$job_order = strtr($value, '£', '');
if (is_numeric($job_order)) {
    // valid
} else {
    // invalid
}

答案 1 :(得分:0)

怎么样:

$value = preg_replace(/'£(?=\d+)/' , '', $value);

或者,如果值可以是£.50

$value = preg_replace(/'£(?=\.?\d+)/' , '', $value);

答案 2 :(得分:0)

尝试使用货币匹配/^((?:\d{1,3}[,\.]?)+\d*)$/

(preg_match('/^((?:\d{1,3}[,\.]?)+\d*)$/',,$value) ? str_replace("£","",$value) : '' );

\d{1,3}一到三位

您可以使用\d{1,X}

增加号码