preg_match检查货币价值的功能


preg_match function for checking currency Value

我有一些值,例如

£523.22
9454
££45523
741.03
etc

我想从值中删除这个£并检查它是否有效,以便我可以将它们插入数据库我在 preg_match() 或类似函数的帮助下创建以下表达式来检查货币 .y

$job_order=(preg_match("/^[£]*[0-9]*(.[0-9]*)?$/",$value) ? str_replace("£","",$value) : '' );

如果$value =£523.22,则返回空值。但如果它的 741.03 thn 它的工作.我不知道这个preg_match有什么问题.我正在从 导入此值。Mer(合并)文件。如果我只是写 $value=£523.22,那么它就可以工作了,但是当它从文件中读取值时,它不会识别井号

你可以使用这个:

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

怎么样:

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

或者,如果值可以£.50

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

尝试这样做进行货币匹配/^((?:'d{1,3}[,'.]?)+'d*)$/

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

'd{1,3} 1 到 3 位数字

您可以使用'd{1,X}增加数量